我想更好地理解爲什麼大數字可能具有較大的精度不一致處理,特別是在JavaScript和它的本地化設施(如ECMA-402/Intl)中。我假設這與浮點數的使用有關,但我想知道限制的位置和/或如何避免這些缺陷。Intl格式化大型浮點數
例如,使用Intl.NumberFormat:
console.log(new Intl.NumberFormat('en-US', { minimumFractionDigits: 3, maximumFractionDigits: 3 }).format(9999999999990.001)); // logs 9,999,999,999,990.000
let test1 = 9999999999990.001
console.log(test1); // logs 9999999999990.002
我怎麼能揣摩出這些數字開始變得不一致?是否有某種限制?當我增加小數精度時,這種限制是否會發生變化? :
let test2 = 9999999999990.0004;
console.log(test2) // logs 9999999999990
http://floating-point-gui.de/ –