我在飞镖中得到不寻常的乘法结果。
var val = 588.82;
print(val * 100); //result 58882.00000000001
这是什么原因,我怎样才能得到正确的答案?
uj5u.com热心网友回复:
这个“问题”来自 IEEE 754 标准,即浮点。
简而言之,许多小数 double 值并不精确。
588.82 并不是真正的 588.82,如果你想要正确的值,你可能应该用两位小数将乘法的结果四舍五入。
uj5u.com热心网友回复:
void main() {
var val = 588.82;
print((val * 100).toInt());
}
0 评论