1

私は次のような値を持っていますが、JavaScript で1724.1000000000001次のような値を切り上げるにはどうすればよいですか? 1724.11汎用関数が必要です。助けてください...

4

5 に答える 5

4

これを行う簡単な方法は次のとおりです。

var num = 1724.1000000000001;
num = Math.ceil(num * 100) / 100;
alert(num); //  1724.11

使い方:

Ceilは値を切り上げます。ただし、10進数を2つにする必要があります。これを行うための最良の方法は次のとおりです。

  1. 値に100を掛けて、
  2. 切り上げて、
  3. 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.1roundceil

var n = 1724.10000000001;
Math.ceil(n * 100) / 100; // >> 1724.11

小数点第 2 位までの単純な切り上げが必要な場合はMath.roundMath.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 に答える