我有以下代码。如果price_result等于整数10,我想要添加两个小数位,例如10会变成10.00。或者如果它等于10.6则会变成10.60。不确定该如何实现。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
如果你需要高性能(比如在游戏中):
Math.round(number * 100) / 100
它的速度大约比parseFloat(number.toFixed(2))快100倍。
当您使用toFixed
时,它始终会将值作为字符串返回。这有时会使代码变得复杂。为了避免这种情况,您可以为Number创建一种替代方法。
当你使用 toFixed
时,它总是以字符串形式返回值。这有时会使代码变得复杂。为避免这种情况,您可以为 Number 创建一个替代方法。
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
并使用:
var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143
或者简单地说:
(22/7).round(3); // 3.143
0.1 + 0.2 // 0.30000000000000004
,所以我需要对其进行校正 (0.1+0.2).round() // 0.3
。 - Vlada为了返回一个数字,请再加一层括号。这样会更简洁。
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
var twoPlacedFloat = parseFloat(('2.00').toFixed(2))
会产生错误。 - Saurin Dashadia如果您的目标是解析,而输入可能是一个字面量,则您期望得到一个 float
,toFixed
无法提供这个功能,因此这里有两个简单的函数来提供这个功能:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}
parseFloat(parseFloat('10.5').toFixed(2))
返回 10.5
,预期结果是 10.50
。同样地,parseFloat(parseFloat('10.50').toFixed(2))
也返回 10.5
。 - MTK从 lodash 中,ceil 可能是最好的选择。
_.ceil("315.9250488",2)
_.ceil(315.9250488,2)
_.ceil(undefined,2)
_.ceil(null,2)
_.ceil("",2)
这也适用于数字,并且是安全的。
您可以使用 .toFixed() 方法将浮点数值保留2位小数。
示例
let newValue = parseFloat(9.990000).toFixed(2)
//output
9.99
parseFloat('9.99').toFixed(6)
,你将得到 9.990000。toFixed
确定小数点后有多少位数字。 - Paul GparseFloat(parseFloat(amount).toFixed(2))
您需要两次解析它。第一次是将字符串转换为浮点数,然后将其修复为两位小数(但toFixed
返回一个字符串),最后再次解析它。
我已经尝试过这个方法,它可以很好地工作。
var multiplied_value = parseFloat(given_quantity*given_price).toFixed(3);
示例输出:9.007
如果您不想四舍五入,请使用以下函数。
function ConvertToDecimal(num) {
num = num.toString(); //If it's not already a String
num = num.slice(0, (num.indexOf(".")) + 3); //With 3 exposing the hundredths place
alert('M : ' + Number(num)); //If you need it back as a Number
}
var twoPlacedFloat = +parseFloat(yourString).toFixed(2)
将字符串转换为浮点数。 - Jose Rui Santos2.00
始终是字符串/数字。 - Saurin Dashadia