我有这段代码:
float result = (85000/12)*5;
System.out.println(result );
result
的值 35415.0 ,但实际计算result
为 35416.66 。
我尝试了所有数据类型,但没有获得实际价值。我应该如何得到它。
答案 0 :(得分:2)
(85000 / 12) * 5
;根据您的要求进行评估:85000 / 12
在整数算术中进行评估 - 其余部分将被丢弃。结果乘以5
。
要保留编译时可评估常量表达式的float
类型,请使用85000f / 12 * 5
。
我总是提升第一个系数,(i)为了清晰起见,(ii)因为85000 / 12 * 5f
之类的东西会表现出截断效应。