私は次のような値を持っていますが、JavaScript で1724.1000000000001
次のような値を切り上げるにはどうすればよいですか? 1724.11
汎用関数が必要です。助けてください...
質問する
3670 次
5 に答える
4
これを行う簡単な方法は次のとおりです。
var num = 1724.1000000000001;
num = Math.ceil(num * 100) / 100;
alert(num); // 1724.11
使い方:
Ceilは値を切り上げます。ただし、10進数を2つにする必要があります。これを行うための最良の方法は次のとおりです。
- 値に100を掛けて、
- 切り上げて、
- 100で割ります。
これで、小数点以下2桁の切り上げ値が得られました。これが起こることです:
1724.1000000000001 * 100 = 172410.00000000001
round-up on 172410.00000000001 = 172411
172411 / 100 = 1724.11
于 2013-01-03T11:20:10.223 に答える
3
質問の例では、厳密には望んでいないと思いますが、1724.11
代わりに次の結果を求めています。1724.1
round
ceil
var n = 1724.10000000001;
Math.ceil(n * 100) / 100; // >> 1724.11
小数点第 2 位までの単純な切り上げが必要な場合はMath.round
、Math.ceil
.
于 2013-01-03T11:05:15.337 に答える
1
http://www.javascriptkit.com/javatutors/round.shtmlから:
var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100 //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10 //returns 28.5
3) //round 8.111111 to 3 decimals
var result=Math.round(8.111111*1000)/1000 //returns 8.111
于 2013-01-03T11:04:53.203 に答える
1
toFixed
以下はコードです。
var num=1724.1999;
alert(num.toFixed(2));
結果1724.20
于 2013-01-03T11:07:12.560 に答える
0
数値を小数点以下 2 桁に丸めるには:
var num = 1724.1000000000001;
num = Math.ceil(num*100)/100;
// num == 1724.11
または、これを試してください:
var num = 1724.1000000000001;
function round(num, decimals){
var d = Math.pow(10,decimals)
return Math.ceil(num*d)/d;
}
console.log(round(num,0))
console.log(round(num,1))
console.log(round(num,2))
console.log(round(num,3))
console.log(round(num,4))
// 1725
// 1724.2
// 1724.11
// 1724.101
// 1724.1001
于 2013-01-03T11:05:26.380 に答える