我有以下代码:
public static float FLOAT_VALUE = 0.899999761581421f;
但每当我使用调试器调用此值时,我发现它现在变为0.9f。为什么会发生这种情况?如何解决这个问题?
答案 0 :(得分:3)
值实际上是在变化,或者更有可能的是,调试器无法显示足够的数字来区分不同的浮点数。
最接近0.899999761581421的浮动是0.89999973773956298828125。最接近0.9的浮点数是0.89999997615814208984375。它们是不同的。
toString转换为0.89999973773956298828125是0.89999974,而不是0.9