※ 引述《accessdenied (存取违规)》之铭言:
: 你完全搞不清楚状况喔。
JavaScript 的概数运算确实没有实作 IEEE 754 的标准,
IEEE 754 中,Nearest value rounding 的方法有两种:
1. Banker's rounding - 取到最接近的“偶数”
2. 取到最远离 0 的数(效率佳)
但搞不清楚状况的是对该语言不熟就随便拿一个 function 来做概数的人,
今天谁敢用 toFixed 去处理概数啊 ...?它本身就不是一个处理概数的 function!
连自己在用的 function 意义都不知道,还很惊讶回传是 String 更是让人摇头。
Number.toFixed() 开宗明义就说了:
“toFixed 回传一个字串,包含此数字与指定位数的小数。”
不要用 toFixed() 处理概数是常识 ...
-
最接近概数法的是 Math.round,但是它只能处理小数点后一位,
因此必须先做数值处理,将小数点往前拉之后再处理回原位,
但 Math.round 并没有做 IEEE 754 所说的那两种方法,而是单纯的逢五进位,
因此 3.5 => 4
-3.5 => -3