我想将数字(以字符串形式给出)截断为固定的小数位数。数字可以是负数(带减号)、正数(无符号)。我宁愿正确地对数字进行四舍五入并保持尾随零。我想要相同的小数位数,不管整数有多长。这些数字将作为字符串存储回来。
例如:
140.234234234 -> 140.234
1.123123 -> 1.123
-12.789789 -> -12.790
我想将数字(以字符串形式给出)截断为固定的小数位数。数字可以是负数(带减号)、正数(无符号)。我宁愿正确地对数字进行四舍五入并保持尾随零。我想要相同的小数位数,不管整数有多长。这些数字将作为字符串存储回来。
例如:
140.234234234 -> 140.234
1.123123 -> 1.123
-12.789789 -> -12.790
首先将它们解析为浮点数,然后使用以下格式进行格式化toFixed
:
var nums = [
"140.234234234", // -> 140.234
"1.123123", // -> 1.123
"-12.789789" // -> -12.790
];
nums.forEach(function(n) {
console.log(parseFloat(n).toFixed(3));
});
通过使用,任何数字都可以显示为固定小数位字符串.toFixed
:
var num = 140.234234234;
var fixedDecimalPlace = num.toFixed(3); // is "140.234"
function truncate( numberString, trunk ) {
var onpoint = numberString.split('.',2);
var numberStringTruncated = numberString;
if (onpoint.length > 1) {
numberStringTruncated = onpoint[0] + '.' + onpoint[1].substring(0,trunk);
}
return numberStringTruncated;
}
这不考虑舍入或填充。正如其他答案所建议的那样,您应该使用 parseFloat 后跟 toFixed