我想显示一个2位小数的数字 .
我以为我可以在JavaScript中使用 toPrecision(2) .
toPrecision(2)
但是,如果数字是 0.05 ,我会得到 0.0500 . 我宁愿保持不变 .
0.05
0.0500
在JSbin上看到它 .
做这个的最好方式是什么?
我可以考虑编写一些解决方案,但我想(我希望)内置这样的东西?
float_num.toFixed(2);
Note: toFixed()将在必要时用零填充或填充以满足指定的长度 .
您可以使用 toFixed 函数执行此操作,但它是buggy in IE . 如果您想要一个可靠的解决方案,请查看我的答案here .
toFixed
试试toFixed而不是 toPrecision .
toPrecision
不知道我是怎么回答这个问题的,但是即使问了很多年,我想添加一个快速简单的方法,我也不会让我失望:
var num = response_from_a_function_or_something(); var fixedNum = parseFloat(num).toFixed( 2 );
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/
我已经完成了这个功能 . 它工作正常但返回字符串 .
function show_float_val(val,upto = 2){ var val = parseFloat(val); return val.toFixed(upto); }
toFixed()方法使用定点表示法格式化数字 .
这是语法
numObj.toFixed([digits])
digits 参数是可选的,默认为0.并且返回类型是字符串而不是数字 . 但您可以使用它将其转换为数字
numObj.toFixed([digits]) * 1
它也可以抛出像 TypeError , RangeError 这样的异常
TypeError
RangeError
这是浏览器中的full detail和兼容性 .
7 回答
Note: toFixed()将在必要时用零填充或填充以满足指定的长度 .
您可以使用
toFixed
函数执行此操作,但它是buggy in IE . 如果您想要一个可靠的解决方案,请查看我的答案here .试试toFixed而不是
toPrecision
.不知道我是怎么回答这个问题的,但是即使问了很多年,我想添加一个快速简单的方法,我也不会让我失望:
function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
答案是这个链接:http://www.jacklmoore.com/notes/rounding-in-javascript/
我已经完成了这个功能 . 它工作正常但返回字符串 .
这是语法
digits 参数是可选的,默认为0.并且返回类型是字符串而不是数字 . 但您可以使用它将其转换为数字
它也可以抛出像
TypeError
,RangeError
这样的异常这是浏览器中的full detail和兼容性 .