web-dev-qa-db-ja.com

JavaScriptを使用して小数点以下の桁数を数値に追加する

この数値は整数439980です

右から2桁小数位にしたいです。それを4399.80にする

文字数はいつでも変わる可能性があるので、常に右から小数点第2位にする必要があります。

これについてどうすればいいですか?

ありがとう

21
Owen
function insertDecimal(num) {
   return (num / 100).toFixed(2);
}
32
nnnnnn

そのtoFixed()を追加するだけで文字列値が返されるため、整数が必要な場合はさらに1つのフィルターが必要になります。実際には、nnnnnnの関数からの戻り値をNumber()でラップして、整数を戻すことができます。

function insertDecimal(num) {
   return Number((num / 100).toFixed(2));
}

insertDecimal(99552) //995.52
insertDecimal("501") //5.01

ここでの唯一の問題は、JSが末尾の「0」を削除するため、439980が4399.80ではなく4399.8を返すことです。

insertDecimal(500); //5

結果を出力するだけの場合は、nnnnnnの元のバージョンが完全に機能します。

ノート

JavaScriptのNumber関数は、特定の入力に対して非常に予期しない戻り値を返す可能性があります。 単項演算子 を使用すると、Numberの呼び出しを省略して、文字列値を整数に強制できます。

return +(num / 100).toFixed(2);

または1を乗算します。

return (num / 100).toFixed(2) * 1;

TIL:JavaScriptのコア数学システムは 奇妙な種類

4
jacobedawson