如何在JavaScript中将整数转换为十进制数?

24

我有一个JavaScript中的数字,想要将其转换为货币格式:

556633 -> £5566.33

我该如何在JavaScript中实现这个?

5个回答

56

试试这个:

var num = 10;
var result = num.toFixed(2); // result will equal string "10.00"

2
确保结果保留两位小数(使用toFixed方法可以同时处理四舍五入)。 - Rob Levine
3
为了改进,您可以使用parseFloat返回一个数字而不是字符串。 - Frederik.L
14
注意,这会输出一个字符串。 - user659025
1
如何使 typeof 为数字但仍保留尾随零;例如 parseFloat(3.6 + 4.4).toFixed(1) 的输出为数字 => 8.0 而不是字符串 "8.0"。 - Santosh

17

这个可以正常工作:

var currencyString = "£" + (amount/100).toFixed(2);

6

尝试

"£"+556633/100

3
为确保准确,我建议使用“£”加上(556633除以100)的结果。 - Skilldrick
适用于这个确切的情况,但如果输入了数字556633.9呢?那么它会给出太多的小数位。 - Rob Levine
2
你是对的Rob Levine,如果OP想要2位小数,需要使用.toFixed(2),但已经有了这方面的答案,我不会更新我的回答。 - YOU

4

这个脚本仅将整数转换为小数。千位分隔符是逗号。

onclick='alert(MakeDecimal(123456789));' 


function MakeDecimal(Number) {
        Number = Number + "" // Convert Number to string if not
        Number = Number.split('').reverse().join(''); //Reverse string
        var Result = "";
        for (i = 0; i <= Number.length; i += 3) {
            Result = Result + Number.substring(i, i + 3) + ".";
        }
        Result = Result.split('').reverse().join(''); //Reverse again
        if (!isFinite(Result.substring(0, 1))) Result = Result.substring(1, Result.length); // Remove first dot, if have.
        if (!isFinite(Result.substring(0, 1))) Result = Result.substring(1, Result.length); // Remove first dot, if have.
        return Result;

    }

0

使用模板字面量可以实现这个功能:

const num = 556633;
const formattedNum = `${num/100}.00`;
console.log(formattedNum); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接