When you convert
int,the precision of the value is lost. For example, When you convert 4.8657 (double) to int.The int value will be 4.Primitive
int does not store decimal numbers.So you will lose 0.8657.
In your case,0.7 is a double value(floating point treated as double by default unless mentioned as float-0.7f). When you calculate
price*much*0.7 ,the answer is a double value and so the compiler wouldn’t allow you to store it in a type integer since there could be a loss of precision.So that’s what is
possible lossy conversion,you may lose precision.
So what could you do about it? You need to tell the compiler that you really want to do it.You need to tell it that you know what you are doing. So explicitly convert double to int using the following code:
int total2= (int) price*much*0.7;
/*(int) tells compiler that you are aware of what you are doing.*/
//also called as type casting
In your case,since you are calculating the cost,I’ll suggest you to declare variable
total2 as the type double or float.