1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptで数値を丸めるにはどうすればいいですか?.toFixed()は文字列を返しますか?

2022-04-05 15:07:38

質問

何か見落としがあるのでしょうか?

var someNumber = 123.456;
someNumber = someNumber.toFixed(2);
alert(typeof(someNumber));
//alerts string

なぜ .toFixed() は文字列を返すのですか?

小数点以下2桁に丸めたいのですが。

どのように解決するのですか?

0.1やその累乗(10進数の端数表示に使われる)は、2進数の浮動小数点システムでは(少なくとも完全な精度では)表現できないため、文字列が返されます。

例えば、0.1 は本当は 0.100000000000055511151231257827021181583404541015625 であり、0.01 は本当は 0.0100000000000020816681711721685132943093776702880859375 なのです。(ありがとうございます BigDecimal 私の主張を証明してくれました :-P)

したがって、(10進浮動小数点や有理数型がない場合)文字列として出力することが、表示に必要な精度に正確にトリミングする唯一の方法なのです。