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