use*_*034 383 javascript floating-point
我有以下代码.我想这样,如果price_result等于一个整数,让我们说10,那么我想添加两个小数位.所以10将是10.00.或者,如果它等于10.6将是10.60.不知道该怎么做.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
Run Code Online (Sandbox Code Playgroud)
Mah*_*aga 862
你可以使用toFixed()来做到这一点
var twoPlacedFloat = parseFloat(yourString).toFixed(2)
Run Code Online (Sandbox Code Playgroud)
Vla*_*ada 46
使用时toFixed,它始终将值作为字符串返回.这有时会使代码复杂化.为避免这种情况,您可以为Number创建替代方法.
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
Run Code Online (Sandbox Code Playgroud)
并使用:
var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143
Run Code Online (Sandbox Code Playgroud)
或者干脆:
(22/7).round(3); // 3.143
Run Code Online (Sandbox Code Playgroud)
Rob*_*man 42
如果你需要表演(比如游戏):
Math.round(number * 100) / 100
Run Code Online (Sandbox Code Playgroud)
它大约是parseFloat的100倍(number.toFixed(2))
http://jsperf.com/parsefloat-tofixed-vs-math-round
pva*_*len 10
要返回一个数字,请添加另一层括号.保持清洁.
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
Run Code Online (Sandbox Code Playgroud)
lodash 的 ceil 可能是最好的
_.ceil("315.9250488",2)
_.ceil(315.9250488,2)
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)
Run Code Online (Sandbox Code Playgroud)
也可以与号码一起使用,而且很安全
您可以使用 .toFixed() 来获取 2 位浮点值
示例
Run Code Online (Sandbox Code Playgroud)let newValue = parseFloat(9.990000).toFixed(2) //output 9.99
如果您的目标是解析,并且您的输入可能是文字,那么您会期望 afloat并且toFixed不会提供,所以这里有两个简单的函数来提供:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
Run Code Online (Sandbox Code Playgroud)
parseFloat(parseFloat(amount).toFixed(2))
Run Code Online (Sandbox Code Playgroud)
你必须解析它两次。第一次是将字符串转换为浮点型,然后固定为两位小数(但返回toFixed的是字符串),最后再次解析。