如何在JavaScript中将数字格式化为百分比值?

时间:2017-07-18 09:52:22

标签: javascript

之前使用ExtJS将数字格式化为百分比。现在我们不再使用ExtJS了,必须使用普通的JavaScript来完成。

需要一种采用数字和格式(通常以%为单位)并将该数字转换为该格式的方法。

{{1}}

5 个答案:

答案 0 :(得分:14)

您可以使用Number.toLocaleString()

var num=25;
var s = Number(num/100).toLocaleString(undefined,{style: 'percent', minimumFractionDigits:2}); 
console.log(s);

否'%'需要签名,输出是:

25.00%

有关format对象参数的更多选项,请参阅toLocaleString()的文档。

答案 1 :(得分:11)

这就是你需要的。

var x=150;
console.log(parseFloat(x).toFixed(2)+"%");
x=0;
console.log(parseFloat(x).toFixed(2)+"%");
x=10
console.log(parseFloat(x).toFixed(2)+"%");

希望这会有所帮助:)

答案 2 :(得分:1)

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
function myFunction(num) {
number = num.toString();;
console.log(number)
var words2 = number.split(".");
    for (var i = 0; i < words2.length; i++) {
        words2[i] += " ";
    }

    num1 = words2[0];
    num2 = words2[1];

    num1 = num1.trim();

    if(num2==undefined){
         number1 = num1+'.00%';
         return number1;
    }else{
         num2 = num2.trim();
         number1 = num1+'.'+num2+'%';
         return number1;
    }

}
document.getElementById("demo").innerHTML = myFunction(50.12);
</script>

</body>
</html>

答案 3 :(得分:0)

将数字转换为具有X个浮点小数位的百分比

function toPercent(number, float) {
var percent = parseFloat(number*100).toFixed(float)+"%";
return percent;
}

答案 4 :(得分:0)

我有十进制值,例如0.012350.016858542,我想分别转换为百分比1.235%和1.6858542%。我认为这很容易,只需计算(0.012858542 * 100),我就很好了。我错了,(0.012858542 * 100) = 1.2858542000000002因为十进制转换。

让我们在计算中添加toFixed(),最后得到正确的值。

(0.012858542*100).toFixed(7)    // returns "1.2858542"
(0.01235*100).toFixed(7)        // returns "1.2350000"

我不想在不需要时显示四个尾随零。我想到的一种解决方案是使用replace()删除所有结尾的零,但我最终使用Numeral.js代替,因为它在轻量级时为我完成了所有工作。我可以推荐!

import numeral from 'numeral';

numeral(0.012858542 * 100).format('0.00[0000]') // returns "1.2858542"
numeral(0.01235 * 100).format('0.00[0000]')     // returns "1.235"