Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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中带小数点的千位分隔符数字的本地化格式_Javascript_Google Chrome_Ecmascript 6_Number Formatting_Ecmascript 5 - Fatal编程技术网

JavaScript中带小数点的千位分隔符数字的本地化格式

JavaScript中带小数点的千位分隔符数字的本地化格式,javascript,google-chrome,ecmascript-6,number-formatting,ecmascript-5,Javascript,Google Chrome,Ecmascript 6,Number Formatting,Ecmascript 5,在JavaScript中,我有一个任意数字作为输入 例如: var number = parseFloat(12345678901234.1234567); 现在我想将其显示为: 12'345'678'901'234.12 应该是 xxx'xxx'xxx.00 如果它是一个整数,并且 xxx'xxx'xxx.y0 如果小数点后只有一位数字 我本以为这会奏效: var number = parseFloat(12345678901234.1234567); console.log(n

在JavaScript中,我有一个任意数字作为输入
例如:

var number = parseFloat(12345678901234.1234567);
现在我想将其显示为:

12'345'678'901'234.12
应该是

xxx'xxx'xxx.00 
如果它是一个整数,并且

xxx'xxx'xxx.y0 
如果小数点后只有一位数字

我本以为这会奏效:

var number = parseFloat(12345678901234.1234567);

console.log(number.toLocaleString('de-CH', { minimumFractionDigits:2, maximumFractionDigits: 2

}));
但它实际上显示的是
12'345'678'901'234.10
,而不是
12'345'678'901'234.12

所以我想也许我也需要把minimumsignifictdigits设置为2
但不幸的是,我发现minimumsignifictdigits显然考虑了字符串中的所有数字,不管出于什么愚蠢的原因,所以我需要将整数部分的位数加上2。比如:

var number = parseFloat(12345678901234.1234567);


console.log(number.toLocaleString('de-CH', { minimumFractionDigits:2, maximumFractionDigits: 2

,minimumSignificantDigits: parseInt(number).toString().length + 2
}));
但这一点仍然存在

12'345'678'901'234.10
将float转换为Number类型也没有帮助,输出仍然相同

var number = Number(parseFloat(12345678901234.1234567));

console.log(number.toLocaleString('de-CH', { minimumFractionDigits:2, maximumFractionDigits: 2

,minimumSignificantDigits: parseInt(number).toString().length + 2
}));
我也试过这个

var number = parseFloat(12345678901234.1234567);
number.toLocaleString('de-CH', {style: 'currency', currency: 'CHF', currencyDisplay: 'code'}).replace('CHF', '')
但它似乎也不起作用
添加样式:“十进制”也没有帮助…
此外,我不想知道每个地区的货币名称

我做错了什么
除了编写自己的格式代码(我有一个问题,我不知道每个语言环境的千位分隔符字符),真的没有别的方法吗?
或者这确实是一个JavaScript错误

是的,对不起,我重新阅读了问题并删除了评论:)@RGraham:没问题。也拿走了我的。但是谢谢你的间接链接,这很有趣。可能是重复的