在Javascript中只舍入十进制

时间:2011-02-18 06:23:28

标签: javascript numbers format decimal rounding

我有这样的价值:

  

20.93

我想把它四舍五入到

  

20.90

我如何在Javascript中执行此操作?

谢谢!

5 个答案:

答案 0 :(得分:2)

将数字乘以10,将其四舍五入,然后将数字除以10:

var result = Math.round(20.93 * 10) / 10

答案 1 :(得分:2)

我认为这应该有效:

.toFixed(1);

答案 2 :(得分:0)

var num= 20.93
num = Math.floor(num * 10) / 10; // 20.9
num = Math.ceil(num * 10) / 10;  //21

答案 3 :(得分:0)

我认为你想要尾随零。答案都没有给你这个。它必须是一个具有尾随零的字符串。

function my_round(x){
  return Number(x).toFixed(1) + '0';
}

如果您不关心尾随零并且您想要一个Number(而不是String),那么这是在JavaScript中舍入到小数位的另一种方法。这轮到小数点d。

function my_round(x, d){
  return Number( Number(x).toFixed(d) );
}

你会做

my_round('20.93', 1);

my_round(20.93, 1);

答案 4 :(得分:0)

您可以设置 toFixed(1)但设定值= 20.96 然后你有21而不是20.90 ;

但我的功能总是20.90而不是20.93,如20.98 / 97/96/95 ......

<script>

    var num = 20.93;

function vround(num) { // CREATE BY ROGERIO DE MORAES

    var Dif = (num.toFixed(2)-num.toFixed(1)).toFixed(2); 
    Dif = Dif * 100; 
    if(Dif <= -1) {

    var n = num.toFixed(2) - 0.05;
    vround(n);
     } else {
     var n = num.toFixed(1)+0;
    console.log(n);
     }
}

vround(num);

</script>

我创建这个函数是为了获得你的价值,但如果你想要更多的形式,我可以改变。