小数点xx桁で四捨五入する toFixed() の使いにくいところ
なぜ、戻り値が文字列なのか。
var num = 123.456; alert(typeof num); // number num = num.toFixed(2); alert(typeof num); // string
toFixed後に、値を表示するだけなら別に良いけど、
さらにその後、計算を続けるには、わざわざ数値化してあげないといけない*1。
var num = 123.456; num = num.toFixed(2); alert(num + 10); // 123.4610 alert(Number(num) + 10); // 133.45999999999998
かといって、toFixedを使わない書き方も微妙だし。
var num = 123.456; num = (Math.round(num*100))/100; alert(num + 10); // 133.45999999999998
まー、数値を計算途中で丸めるな、ということなんでしょうか。
*1:加算以外は勝手にキャストされてそうだが。