打字稿,从我们货币到es货币

时间:2019-05-31 08:55:57

标签: typescript

我正在尝试将美元转换为西班牙货币(好的),但是当我再次尝试获取美元时,我得到了Nan。怎么了?

谢谢

const esp = Number('5000.55').toLocaleString(); // esp = '5.000,55'
const us = Number('5.000,55').toLocaleString('en-US'); // us = 'NaN'

2 个答案:

答案 0 :(得分:2)

在HRK44的答案中,我建议使用Intl.NumberFormat,它是国际化API的一部分。 .toLocaleString较旧,它实际上不支持语言环境,它仅使用系统语言环境,并且对大容量数据的处理方式更差。

然后您可以使用适当的语言代码执行以下转换:

var CurrencyFormat= new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
  minimumFractionDigits: 2
});

CurrencyFormat.format(5000.55); /* $5,500.55 */

答案 1 :(得分:1)

这是因为Number('5.000,55')不正确->它返回NaN。

没有本地js函数可以从.toLocaleString()结果中获取数字。

您可以做什么:

1-将初始值保存到变量中:

const init = '5000.55';
const esp = Number(init).toLocaleString(); // esp = '5.000,55'
const us = Number(init).toLocaleString('en-US'); // us = '5,000.55'

2-使用一些处理数字操作的第三方库。

3-创建您自己的函数,将结果解析为所需的内容(可能很难处理所有情况...)