ale*_*lex 288 javascript floating-point precision
我想显示一个2位小数的数字.
我以为我可以toPrecision(2)在JavaScript中使用.
但是,如果数字是0.05,我得到0.0500.我宁愿保持不变.
在JSbin上看到它.
做这个的最好方式是什么?
我可以考虑编写一些解决方案,但我想(我希望)内置这样的东西?
Jas*_*ary 497
float_num.toFixed(2);
Run Code Online (Sandbox Code Playgroud)
注意:toFixed()如果需要,将使用零填充或填充以满足指定的长度.
小智 43
您可以toFixed像这样设置小数点长度:
let number = 6.1234
number.toFixed(2) // '6.12'
Run Code Online (Sandbox Code Playgroud)
但toFixed返回一个字符串,如果根本number没有小数点,它会添加多余的零。
let number = 6
number.toFixed(2) // '6.00'
Run Code Online (Sandbox Code Playgroud)
为了避免这种情况,您必须将结果转换为数字。你可以用这两种方法来做到这一点:
let number1 = 6
let number2 = 6.1234
// method 1
parseFloat(number1.toFixed(2)) // 6
parseFloat(number2.toFixed(2)) // 6.12
// method 2
+number1.toFixed(2) // 6
+number2.toFixed(2) // 6.12
Run Code Online (Sandbox Code Playgroud)
pan*_*nos 13
不知道我是怎么回答这个问题的,但是即使问了很多年,我想添加一个快速简单的方法,我也不会让我失望:
var num = response_from_a_function_or_something();
var fixedNum = parseFloat(num).toFixed( 2 );
Run Code Online (Sandbox Code Playgroud)
小智 13
如果你需要 2 位数字而不是字符串类型,我就用这种方法。
const exFloat = 3.14159265359;
console.log(parseFloat(exFloat.toFixed(2)));
Run Code Online (Sandbox Code Playgroud)
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/
number.parseFloat(2) works but it returns a string.
If you'd like to preserve it as a number type you can use:
Math.round(number * 100) / 100
你可以尝试混合Number()和toFixed()。
将您的目标数字转换为带有 X 位数字的漂亮字符串,然后将格式化的字符串转换为数字。
Number( (myVar).toFixed(2) )
请参阅下面的示例:
var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
$('#message').text( myNumber * multiplier );
});
$('#actionButton2').on('click', function() {
$('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>
<div id="message"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
298954 次 |
| 最近记录: |