首页 文章

JavaScript将float显示为2位小数

提问于
浏览
233

我想显示一个2位小数的数字 .

我以为我可以在JavaScript中使用 toPrecision(2) .

但是,如果数字是 0.05 ,我会得到 0.0500 . 我宁愿保持不变 .

JSbin上看到它 .

做这个的最好方式是什么?

我可以考虑编写一些解决方案,但我想(我希望)内置这样的东西?

7 回答

  • 47
    float_num.toFixed(2);
    

    Note: toFixed()将在必要时用零填充或填充以满足指定的长度 .

  • 410

    您可以使用 toFixed 函数执行此操作,但它是buggy in IE . 如果您想要一个可靠的解决方案,请查看我的答案here .

  • 0

    试试toFixed而不是 toPrecision .

  • 6

    不知道我是怎么回答这个问题的,但是即使问了很多年,我想添加一个快速简单的方法,我也不会让我失望:

    var num = response_from_a_function_or_something();
    
    var fixedNum = parseFloat(num).toFixed( 2 );
    
  • 16

    function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }

    圆(1.005,2); //返回1.01回合(1.004,2); //返回1而不是1.00

    答案是这个链接:http://www.jacklmoore.com/notes/rounding-in-javascript/

  • 1

    我已经完成了这个功能 . 它工作正常但返回字符串 .

    function show_float_val(val,upto = 2){
      var val = parseFloat(val);
      return val.toFixed(upto);
    }
    
  • 0

    toFixed()方法使用定点表示法格式化数字 .

    这是语法

    numObj.toFixed([digits])
    

    digits 参数是可选的,默认为0.并且返回类型是字符串而不是数字 . 但您可以使用它将其转换为数字

    numObj.toFixed([digits]) * 1
    

    它也可以抛出像 TypeErrorRangeError 这样的异常

    这是浏览器中的full detail和兼容性 .

相关问题