浮点数从0.2到0.19999994

时间:2014-10-11 21:10:27

标签: java javascript arduino processing

我每0.02秒记录一次数据并且我将此信息保存到制表符分隔文件中的代码产生了一些奇特的结果,即使我每次添加0.02到时间变量它开始略微偏离(我是意识到,当四舍五入时它基本相同,但它会让我感到烦恼)。如何让它看起来像更正的数据集

output.println(time + "\t" + accelX + "\t" + accelY + "\t" + accelZ);
time = time + 0.02;

输出给了我(我遗漏了其他数据,因为它正好)

Time 0.02 0.04 0.06 0.08 0.099999994 0.1199999999

应该是

Time 0.02 0.04 0.06 0.08 0.1 0.12   

1 个答案:

答案 0 :(得分:1)

首先,不要使用double工作的float。接下来,使用printf而不是println,并指定输出的有效数字。

e.g。像这样的东西,

output.printf("%5.2f %5.2f %5.2f %5.2f", time, accelX, accelY, accelZ);