JavaScriptで小数点第n位を四捨五入するには?
[上に]
[前に]
[次に]
Apoptosis
2000/02/13(日) 03:15:26
JavaScriptを使って四捨五入するにMath.roundを使いますが、小数点第一位を四捨五入するため
Math.round(1.3333)は1となってしまいます。
Math.round(1.3333)を1.34など任意の桁数で四捨五入する方法はあるのでしょうか?
どうぞよろしくお願いします。
EMI
2000/02/13(日) 03:29:01
とりあえず、思いつきでこんなのはどうでしょう?
動作保証はしかねますが。効率悪そうだし。(^^;
あと、JavaScriptよく知らないので、結構適当です。
myround(val, n)
{
for(i=0;i<n;i++){
val *= 10;
}
val = round(val + 0.5);
for(i=0;i<n;i++){
val /= 10;
}
return val;
}
猫
2000/02/13(日) 03:37:36
var kazu = 1.3333;
kazu = (kazu * 100);
kazu = Math.round(kazu + 0.5);
kazu = (kazu / 100);
alert(kazu);
猫
2000/02/13(日) 03:39:03
遅かった(^-^;
Apoptosis
2000/02/13(日) 03:58:26
[[解決]]
猫さん、さっそくのアドバイスありがとうございます。
すごくスマートなやり方で感心してしまいました。
任意桁数の対応も楽ですし。
私もこういった発想ができればなぁ・・(^^;
ありがとうございました。
Apoptosis
2000/02/13(日) 04:21:20
解決後にナンですが、
kazu = Math.round(kazu + 0.5);は
kazu = Math.round(kazu);にしないと間違った値を出してしまいますね。
Math.roundだけで四捨五入はしてますから。
猫
2000/02/13(日) 04:45:21
そうですね.失礼しました.
[上に]
[前に]
[次に]