将十进制数字(作为字符串)截断为固定数量的位置

时间:2013-01-18 17:14:39

标签: javascript string-formatting number-formatting

我想将数字(以字符串形式给出)截断为固定的小数位数。数字可以是负数(带减号),正数(无符号)。我更喜欢正确地对数字进行舍入并保持尾随零。我想要相同的小数位数,无论整数是多长。这些数字将作为字符串存储回来。

例如:

140.234234234 -> 140.234
1.123123 -> 1.123
-12.789789 -> -12.790

3 个答案:

答案 0 :(得分:6)

首先将它们解析为浮点数,然后使用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));
});

http://codepen.io/anon/pen/IvxmA

答案 1 :(得分:0)

使用.toFixed

可以将任何数字显示为固定的小数位数字符串
var num = 140.234234234;
var fixedDecimalPlace = num.toFixed(3); // is "140.234"

答案 2 :(得分:0)

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