【问题标题】:Converting float to currency Argentine Peso将浮动转换为货币阿根廷比索
【发布时间】:2016-04-13 17:51:50
【问题描述】:

似乎阿根廷比索 (ARS) 的货币符号与美元在美国的符号完全相反。 , 用作小数分隔符,. 用作千位分隔符。

  • 1121 => $1.121,00
  • 1000.5 => $1.000,50
  • 85.72 => $85,72

我查看了numeral (npm numeral js),但无法将浮点数转换为上面指定的货币格式。

这是我尝试过的:

> numeral('87.75').format('$0.0,00')
'$87.7500'
> numeral('87.75').format('$0,0.00')
'$87.75'
> numeral('87.75').format('$0,00')
'$88'
> numeral('87.75').format('$0.00')
'$87.75'
> numeral('87.75').format('$00,00')
'$88'
> numeral('87.75').format('$0.00')
'$87.75'
> numeral('87.75').format('$00,00')
'$88'
> numeral('87.75').format('$00,00.00')
'$87.75'
> numeral('87.75').format('$0[.]0.00')
'$87.8'
> numeral('87.75').format('$0[.]0[.]00')
'$87.8'
> numeral('87.75').format('$0[.]0[,]00')
'$87.75'
> numeral('87.75').format('$0[,]0[,]00')
'$88'

这些都是字符串,但不应该影响格式。

【问题讨论】:

  • 最坏的情况你总是可以从replacetoString
  • 我没有该领域的专业知识,但toLocaleString 会帮忙吗?
  • 不只是货币,英语语言环境使用点作为小数分隔符,逗号作为千位分隔符,而其他欧洲语言使用相反的符号

标签: javascript currency numeral.js


【解决方案1】:

您必须创建自己的格式。将 numeric.js 文档向下滚动到“语言”部分,以获取有关如何定义分隔符的示例。

numeral.language('es_ar', {
    delimiters: {
        thousands: '.',
        decimal: ','
    },
    currency: {
        symbol: '$'
    }
});

numeral.language('es_ar');

numeral(1087.76).format('$0,0.00')
> "$1.087,76"

【讨论】:

    【解决方案2】:

    toLocaleString 可能是您正在寻找的功能。你可以read about it here

    这是一个使用它来将数字格式化为阿根廷比索货币的示例:

    var value = 1234.56;
    var result = value.toLocaleString('es-ar', {
        style: 'currency',
        currency: 'ARS',
        minimumFractionDigits: 2
    });
    
    console.log(result); // Prints "$1.234,56"
    

    【讨论】:

    • 我想要一些可以在服务器和浏览器上运行的东西。不过,这很酷,谢谢。
    • 这适用于两者(这是 ES5 特性),尽管目前浏览器支持仅限于现代浏览器。 (值得注意的是,Safari 还没有很好的支持。)
    猜你喜欢
    • 2020-10-05
    • 2011-07-05
    • 2015-10-09
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    相关资源
    最近更新 更多