我有以下代码。我想要它,如果 price_result 等于一个整数,比如说 10,那么我想添加两个小数位。所以 10 就是 10.00。或者如果它等于 10.6 就是 10.60。不知道如何做到这一点。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
我有以下代码。我想要它,如果 price_result 等于一个整数,比如说 10,那么我想添加两个小数位。所以 10 就是 10.00。或者如果它等于 10.6 就是 10.60。不知道如何做到这一点。
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
您可以使用toFixed()来做到这一点
var twoPlacedFloat = parseFloat(yourString).toFixed(2)
如果您需要性能(例如在游戏中):
Math.round(number * 100) / 100
它大约是 parseFloat(number.toFixed(2)) 的 100 倍
当您使用 时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
要返回一个数字,请添加另一层括号。保持清洁。
var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
如果您的目标是解析,并且您的输入可能是文字,那么您会期望 afloat
并且toFixed
不会提供,所以这里有两个简单的函数来提供:
function parseFloat2Decimals(value) {
return parseFloat(parseFloat(value).toFixed(2));
}
function parseFloat2Decimals(value,decimalPlaces) {
return parseFloat(parseFloat(value).toFixed(decimalPlaces));
}