拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 飞镖中的双倍乘法给出了不寻常的结果

飞镖中的双倍乘法给出了不寻常的结果

白鹭 - 2022-02-02 2024 0 0

我在飞镖中得到不寻常的乘法结果。

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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *