Number.toFixed()是否使用区域设置约定?

时间:2011-04-19 23:07:53

标签: javascript localization

我正在编写一个JavaScript函数,可以对使用Number.toFixed()从数字生成的字符串执行小数位操作。我需要完成的部分工作是在格式化的字符串中找到小数点的位置。但是,我开始怀疑toFixed()函数是否会使用特定于语言环境的格式(例如,'。'对比','表示小数点)。如果是这种情况,我不能只搜索'。'字符,但可能需要搜索逗号,或者可能需要搜索其他语言环境中使用的其他分隔符。

在C ++中,我可以使用numpunct语言环境facet来确定使用了哪个字符,但我不相信JavaScript中有任何等效资源。然后我的问题是toFixed()是否会遵守语言环境约定,如果是这样,有没有办法识别浏览器主机上使用的约定?

2 个答案:

答案 0 :(得分:4)

不,我没有。只有.toLocaleString()尊重小数点分隔符。假设locale具有','作为小数分隔符,Number('42,6')都不会返回正确的值。

答案 1 :(得分:3)

// You can always ask-

Number.decimalChar= (function(){
    return (3/5).toLocaleString().charAt(1)
})()

alert(Number.decimalChar)