我将如何将1200000转换为120万英镑,又如何将2675000转换为267.5万英镑
我可以让第二个投入工作,但第一个收益为1200万英镑而不是120万英镑
我的数字在变量中。
salePrice.toString().replace(/0+$/g, '').replace(/\B(?=(\d{3})+(?!\d))/g, '.')}m
我将如何更改第二个替换以使其起作用,因为我猜这是导致问题的原因。
只要通过了
1200000 1220000 1222000 1222200 1222220 1222222 1020000 1022200
等等,所有这些都必须能够通过。
答案 0 :(得分:1)
您有Number.prototype.toFixed()
选项可用。
const data = [
2675000,
1200000,
1220000,
1222000,
1222200,
1222220,
1222222,
1020000,
1022200
];
const formatted = data.map(x=> (x/1000000).toFixed(3).replace(/0+$/g, '')); // ["2.675", "1.2", "1.22", "1.222", "1.222", "1.222", "1.222", "1.02", "1.022"]
我没有将零件包括在货币中,因为您已经知道了。 Shilly的答案真的很美。我只是在提出另一种解决方案,它要短一些。
答案 1 :(得分:0)
您将它们除以所需的精度。我建议尽量将数字保留为数字,因为用作数字的字符串遵循文本规则而不是数学规则,因此您除了将输出格式化外,还必须将它们解析回数字以执行有意义的工作。
const data = [
2675000,
1200000,
1220000,
1222000,
1222200,
1222220,
1222222,
1020000,
1022200
];
const format_currency = ( prefix, value, precision, suffix ) => `${ prefix }${ value / precision }${ suffix }`;
const million = {
symbol: 'm',
value: 1000000
};
const pounds = '£';
const results = data.map( entry => format_currency( pounds, entry, million.value, million.symbol ));
console.log( results );