数学整数格式

math.round number format

本文关键字:格式 整数      更新时间:2023-09-26

我在我的网站上使用了一个脚本来制作转换权重。Math.round 函数工作正常,但我需要将"结果"格式化为如下所示:例如 1.000,000。今天,这个数字显示为1000.000。有谁知道该怎么做?我尝试了一些number_format但不能。按照以下代码操作:

<script>
        function convert() {
            var amount = document.getElementById("amount").value,
                measurement_from = document.getElementById("measurement_from"),
                measurement_from_name = measurement_from.options[measurement_from.selectedIndex].text,
                measurement_from_type = measurement_from.options[measurement_from.selectedIndex].getAttribute('data-type'),
                measurement_from_value = measurement_from.options[measurement_from.selectedIndex].getAttribute('data-value'),
                measurement_to = document.getElementById("measurement_to"),
                measurement_to_name = measurement_to.options[measurement_to.selectedIndex].text,
                measurement_to_type = measurement_to.options[measurement_to.selectedIndex].getAttribute('data-type'),
                measurement_to_value = measurement_to.options[measurement_to.selectedIndex].getAttribute('data-value'),
                ingredient = document.getElementById("ingredient"),
                ingredient_name = ingredient.options[ingredient.selectedIndex].text,
                ingredient_density = ingredient.options[ingredient.selectedIndex].getAttribute('data-density'),
                total_volume,
                result,
                result_text,
                result_div = document.getElementById("result");
                if (measurement_from_type == 'weight')
                    total_volume = amount * measurement_from_value / ingredient_density;
                else 
                    total_volume = amount * measurement_from_value;
                if (measurement_to_type == 'weight')
                    result = total_volume / measurement_to_value * ingredient_density;
                else
                    result = total_volume / measurement_to_value;
                result = Math.round(result * 1000) / 1000;
                result_text = result + ' ' + measurement_to_name ;
                while( result_div.firstChild ) {
                    result_div.removeChild( result_div.firstChild );
                }
                result_div.appendChild( document.createTextNode(result_text) );

        }
    </script>

谢谢!

Use toLocaleString。例:

var number = 35000000;
console.log(number.toLocaleString('de-DE', { minimumFractionDigits: 2 }));
// outputs "35.000.000,00"

您可以通过更改"de-DE"来选择您喜欢的本地化。在您的代码上:

result = Math.round(result * 1000) / 1000; 
// are you sure you don't mean to include / 1000 inside the round? 
result = result.toLocaleString('de-DE', { minimumFractionDigits: 2 });
...

如果你想要"大陆风格"的数字,比如1.234.567,89,请查看php语言环境。