Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:tolocalString()_Javascript_Internationalization_Number Formatting - Fatal编程技术网

JavaScript:tolocalString()

JavaScript:tolocalString(),javascript,internationalization,number-formatting,Javascript,Internationalization,Number Formatting,我的JavaScripttoLocaleString()在这里做了一些奇怪的事情。如果我有一个小于1000的数字,它将给点作为十进制分隔符,但如果我有一个大于1000的数字,它将给我逗号作为十进制分隔符 我的区域设置使用点作为千位分隔符,逗号作为十进制分隔符 以下是我如何使用代码: sellingPrice.toLocaleString(undefined, { minimumFractionDigits: 2 } 如果sellingPrice是700,它将给我700.00 如果销售价格是70

我的JavaScript
toLocaleString()
在这里做了一些奇怪的事情。如果我有一个小于1000的数字,它将给点作为十进制分隔符,但如果我有一个大于1000的数字,它将给我逗号作为十进制分隔符

我的区域设置使用点作为千位分隔符,逗号作为十进制分隔符

以下是我如何使用代码:

sellingPrice.toLocaleString(undefined, { minimumFractionDigits: 2 }
如果sellingPrice是
700
,它将给我
700.00
如果销售价格是
7000
,它将给我
7.000,00

但结果是一样的

为什么会这样

var sellingPrice=700;sellingPrice.toLocaleString('en-us', { minimumFractionDigits: 2 });
将为您提供结果
700.00


将为您提供结果
7000.00

我刚刚发现javascript遵循浏览器区域设置

在我的情况下,我使用铬。为了实现我的目标,我不得不把语言改成我的语言(印度尼西亚语),这有点令人失望。我希望我的浏览器语言是英语


我不能使用“en”或“de”,因为我希望代码是动态的,并且遵循用户区域设置。

检查您的Chrome浏览器的区域设置
window.navigator.language
对于
7000
700
,分别返回
7.000,00
700,00
数字。toLocaleString('de',{minimumFractionDigits:2})如何准确设置格式?javascript将遵循什么设置?@Phil提到,这是因为您的语言环境设置不正确。使用
number.tolocalString('en',{minimumFractionDigits:2})
应该可以正常工作。如果您希望
locale
是动态的,请使用@mallendeo提到的…类似
number.tolocalString(window.navigator.language,{minimumFractionDigits:2})
var sellingPrice=7000;sellingPrice.toLocaleString('en-us', { minimumFractionDigits: 2 });