簡體   English   中英

將十進制數字(作為字符串)截斷為固定數量的位置

[英]Truncate decimal number (as strings) to a fixed number of places

我想將數字(以字符串形式給出)截斷為固定的小數位數。 數字可以是負數(帶減號),正數(無符號)。 我更喜歡正確地對數字進行舍入並保持尾隨零。 我想要相同的小數位數,無論整數是多長。 數字將作為字符串存儲回來。

例如:

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));
});

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

使用.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM