toLocaleString() 转换数字为货币格式字符串失效的问题咨询
toLocaleString() 转换数字为货币格式字符串失效的问题咨询
大家好,我最近碰到个挺费解的问题,想过来请教下同行们!
我用toLocaleString()把数字转成USD货币格式的字符串,两段逻辑几乎一模一样,但结果却完全不同:
一段代码根本达不到预期效果,输出里没有本该有的货币符号,只显示了原始数字,比如会出现「Amount is too low: 3000」这样的内容,对应的代码是:
//Incorrectly displays something like "Amount is too low: 3000" this.statusMessage = "Amount is too low: " + this.inputVals.Amount.toLocaleString('en-US', { style: 'currency', currency: 'USD', })
另一段代码却能正常工作,正确输出带美元符号的货币格式字符串,比如「Calculated total: $3479.89」,代码是:
//Correctly displays something like "Calculated total: $3479.89" this.statusMessage2 = "Calculated total: " + this.invoiceTotal.toLocaleString('en-US', { style: 'currency', currency: 'USD', })
我自己琢磨了下,会不会是this.inputVals.Amount的类型不对?比如它其实是字符串类型的数字,而不是真正的Number类型?毕竟如果是字符串调用toLocaleString()的话,可能没法触发数字的格式化逻辑?或者有没有可能这个值是空、undefined或者其他非数字的情况?
有没有大佬能帮我定位下问题,或者给点解决的思路呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

