今天开发的时候碰到一个问题 nodejs 在计算 (99.1 *1.05).toFixed(2) 时的输出是 104.05 而 Ruby 计算 (99.1*1.05).round(2) 时的输出是 104.06 我还试了下其他语言 Python 和 nodejs 是一样的 Excel 和 Ruby 的输出是一样的 99.1*1.05 的结果是 104.05499999999999 但不同语言对这个数字的舍入处理却不同 感觉 nodejs 这么流行的语言不太会出现这种问题 发个贴来问下大家的看法 Nodejs, Ruby, 语言, 输出
因为 ruby 的实现里 https://github.com/ruby/ruby/blob/master/numeric.c#L2536C13-L2536C25 发现数字的小数位数大于 14 位就会用另一个算法了