如何只提取浮点数的小数位数

时间:2018-02-26 13:35:38

标签: java casting floating-point

我试图仅提取数字中的小数位数(例如4.375变为0.375)。为此,我编写了这段代码,除了最后一个浮点数之外,它主要按预期工作。

float[] actualSizes = {4.375f, 4.375f, 6.5625f, 8.75f, 10.93f};
float decimalDigits;

for (int i = 0; i < actualSizes.length; i++) 
{
        decimalDigits = actualSizes[i] - (int)(actualSizes[i]);
        System.out.println(decimalDigits);
}

这是输出,我预计最后一行是0.93:

0.375
0.375
0.5625
0.75
0.9300003

我尝试过使用double,结果再次不是预期的结果。我认为问题可能与问题Is floating point math broken?中描述的问题类似(问题是Javascript,而我使用的是Java)。

有没有办法在我的程序中绕过这个并获得0.93?

0 个答案:

没有答案