【问题标题】:Convert localized percentage to float in Javascript将本地化百分比转换为 Javascript 中的浮点数
【发布时间】:2016-07-07 10:45:28
【问题描述】:

我正在使用 JavaScript 的 Number.toLocaleString() 将十进制数字转换为我拥有的每个语言环境的百分比。根据区域设置,0.5 等数字将转换为“50%”、“50 %”或“%50”。

转换完成并且用户选择其选项后,我需要将这些字符串转换回小数。 JavaScript 使用 parseFloat() 来达到这个目的,这在前两种情况下都可以,但无法识别前面的百分比并为其返回 NaN。

例如:

>> parseFloat("50%")
<- 50
>> parseFloat("50 %")
<- 50
>> parseFloat("%50")
<- NaN

有没有办法让转换适用于所有本地化百分比?我知道还有其他方法可以在后台偷偷输入正确的数字而不进行任何转换,但当时我对此并不感兴趣。

【问题讨论】:

    标签: javascript internationalization type-conversion


    【解决方案1】:

    我不建议对本地化文本进行任何字符串操作,它们只能用于显示目的。

    您需要保留预先本地化的值,许多 html 元素可以显示本地化文本并具有用于保留底层值的 value 属性。例如,如果您使用“选择”:

    <select>
        <option value="0.5">50 %</option>
        <option value="1">100 %</option>
        <option value="1.5">150 %</option>
        ...
    </select>
    

    【讨论】:

      【解决方案2】:

      像删除 % 这样简单的事情怎么样?

      >> parseFloat("%50".replace('%', ''));
      <- 50
      

      这适用于任何提到的格式。

      【讨论】:

        猜你喜欢
        • 2022-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-26
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2016-11-29
        相关资源
        最近更新 更多