在Javascript中将本地化百分比转换为浮点数

时间:2016-07-07 10:45:29

标签: javascript internationalization type-conversion

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

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

例如:

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

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

2 个答案:

答案 0 :(得分:0)

如何做一些简单的事情,比如删除%?

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

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

答案 1 :(得分:0)

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

您需要保留预先本地化的值,许多html元素可以显示本地化文本,并具有用于保留基础值的值属性。例如,如果您正在使用&#34;请选择&#34;:

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