【发布时间】:2015-02-06 03:53:48
【问题描述】:
我有这个代码:
float number1 = 2f / 12;
System.out.println(number1);
int number2 = 6;
float x = number1 * number2;
System.out.println(x);
我得到的输出是:
0.16666667
1.0
为什么?当我将number1和number2相乘时,number2应该被提升为float类型,我应该得到一个0.96
当我将代码修改为:
float number1 = 0.16f;
System.out.println(number1);
int number2 = 6;
float x = number1 * number2;
System.out.println(x);
我得到了很好的结果:
0.16
0.96
为什么第一个示例中的操作float = float * int 会产生不好的结果?
【问题讨论】:
标签: java floating-point int floating-accuracy floating-point-conversion