【发布时间】:2013-02-04 18:31:16
【问题描述】:
我认为跟随在某种程度上与浮点值的精度有关,但我不确定如何以及为什么观察到完全跟随的行为。我在java中有以下代码:
class float_int
{
void float_to_int(float val)
{
int int_val = (int)val;
float remain_val = val - (float)int_val;
System.out.println("val - " + val);
System.out.println("int_val - " + (float)int_val);
System.out.println("remain_val - " + remain_val);
}
public static void main(String args[])
{
float_int obj = new float_int();
obj.float_to_int((float)12.345);
}
}
我得到以下输出:
val - 12.345
int_val - 12.0
remain_val - 0.34500027
现在我不知道为什么我会在剩余值的末尾得到一个额外的“27”。
【问题讨论】:
-
我建议使用
double,除非您有非常好的理由。您仍然会看到这些问题,但它们会小约 10 亿倍。
标签: java type-conversion