之前使用ExtJS将数字格式化为百分比。现在我们不再使用ExtJS了,必须使用普通的JavaScript来完成。
需要一种采用数字和格式(通常以%为单位)并将该数字转换为该格式的方法。
{{1}}
答案 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.01235
和0.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"