toLocaleString在Firebase Cloud上不起作用

时间:2019-03-22 14:03:14

标签: javascript firebase google-cloud-functions

由Firebase Cloud Functions托管的我的node 8功能无法正常工作。我进行了一个--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-38-3139075221f6> in <module> ----> 1 a = np.array(( np.poly1d((3,2,1)), np.poly1d((3,2,1)), np.poly1d((3,2,1)) )) ValueError: cannot copy sequence with size 2 to array axis with dimension 3 调用,将所有参数传递为巴西货币格式,但是我得到了默认的toLocaleString格式。

功能:

EN

预期结果

  • const value = 10825.20645 const formatted = value.toLocaleString('pt-br', { style: 'currency', currency: 'BRL', decimals: 2 })

CloudFunction上的实际结果

  • R$ 10.825,21

在浏览器上运行相同的功能可以正常工作

R$ 10,825.21

1 个答案:

答案 0 :(得分:0)

为解决这个问题(部分内容,我会解释),我使用了{hybrdthry911建议的INTL API。默认情况下,nodejs仅加载EN lang。

const intl = require('intl')
const locale = intl.NumberFormat('pt-br', { 
    style: 'currency', 
    currency: 'BRL', 
    decimals: 2 
})
const value = 10825.20645
const formatted = locale.format(value)
console.log(formatted) // R$10.825,21

但是,它仍然与我的预期结果有所不同。在浏览器中,货币符号后有一个空格,但带有INTL。

  • 预期:R$ 10.825,21
  • 结果:R$10.825,21

这是一个小问题,我会进行搜索。