今天做一个android计算器,在进行小数点运算时,发现一个好奇怪的事情。
事情是这样的,如下:
package aa;
import java.util.Random;
public class test{
public static void main(String[] args){
float a=Float.parseFloat("3.546");
float b=Float.parseFloat("7.852");
float result=a+b;
System.out.println(a);
System.out.println(b);
System.out.println(result);
}
}
a,b的答案肯定是知道的了,那么大家觉得result的结果会是多少呢?
大家再看一个运算,如下:
package aa;
import java.util.Random;
public class test{
public static void main(String[] args){
float a=Float.parseFloat("3.546");
float b=Float.parseFloat("7.853");
float result=a+b;
System.out.println(a);
System.out.println(b);
System.out.println(result);
}
}
我只是把 float b=Float.parseFloat("7.852");
改成了float b=Float.parseFloat("7.853");
也许大家觉得没什么不一样啊,呵呵,大家机上试试就能发觉异样了,那就是
当float b=Float.parseFloat("7.852");的时候
result的输出是11.398001
而当float b=Float.parseFloat("7.853");的时候
result的输出是11.399,这就奇怪了,怎么小数点的位数会不同了,更奇怪的是
当float b=Float.parseFloat("7.854");时,result=11.4,
这答案真是人才呀,这么智能,那大家知道这是怎么回事吗,知道的解释下哦
事情是这样的,如下:
package aa;
import java.util.Random;
public class test{
public static void main(String[] args){
float a=Float.parseFloat("3.546");
float b=Float.parseFloat("7.852");
float result=a+b;
System.out.println(a);
System.out.println(b);
System.out.println(result);
}
}
a,b的答案肯定是知道的了,那么大家觉得result的结果会是多少呢?
大家再看一个运算,如下:
package aa;
import java.util.Random;
public class test{
public static void main(String[] args){
float a=Float.parseFloat("3.546");
float b=Float.parseFloat("7.853");
float result=a+b;
System.out.println(a);
System.out.println(b);
System.out.println(result);
}
}
我只是把 float b=Float.parseFloat("7.852");
改成了float b=Float.parseFloat("7.853");
也许大家觉得没什么不一样啊,呵呵,大家机上试试就能发觉异样了,那就是
当float b=Float.parseFloat("7.852");的时候
result的输出是11.398001
而当float b=Float.parseFloat("7.853");的时候
result的输出是11.399,这就奇怪了,怎么小数点的位数会不同了,更奇怪的是
当float b=Float.parseFloat("7.854");时,result=11.4,
这答案真是人才呀,这么智能,那大家知道这是怎么回事吗,知道的解释下哦