A double can store more decimal places than a float. This means that
if convert a double to a float we will lose precision - i.e. the
number will be less precise.
1. [ Java ] Possible loss of precision
We cannot even compile a program that might involve a loss of precision. Attempting to (implicitly) convert a double to a float will cause a compile error such as:
Demo.java:4: possible loss of precision found : double required: floatWe should do one of the following:
- Explicitly cast from double to float:
float d = (float)3.8;
- Use
fto indicate that the literal is afloatnot adouble
2. [ Java ] Problems with Round
This is an issue with Java
We can use Math.round to convert:
- A
doubleto along - A
floatto anint
- Change the double to a float first:
int i=Math.round(3.1f);
- Change the long to an int:
int i=(int)Math.round(3.1);