我正在计算用户调整大小后图像大小的差异。我将图像新宽度除以自然宽度。这是代码:
Math.round( (img.width / naturalWidth) * 100) / 100
我得到的数字可能如下所示(注释掉的数字是我想将它们转换成的数字)。
0 // 0%
1 // 100%
1.2 // 120%
1.39402 // 139%
1.39502 // 140%
21.56 // 216%
0.4 // 40%
0.44 // 44%
0.1 // 10%
0.01 // 1%
0.005 // 1%
0.0049 // 0%
从不否定数字。我需要对这些数字进行舍入,然后将它们转换为以百分比表示的字符串。有一种简单直接的方法来实现这一目标吗?
答案 0 :(得分:3)
您可以像这样使用Math.round
:
Math.round((img.width/ naturalWidth) * 100));
一个简单的例子:
var a = 1.2;
var b = 1;
alert(Math.round((a / b) * 100) + '%'); // 120%
答案 1 :(得分:3)
这应该可以解决问题:
const formatAsPercentage = x => `${Math.round(x * 100)}%`
您可以将其用作:
formatAsPercentage(.05) // => "5%"
答案 2 :(得分:1)
我在自己的项目中使用过
function calculatePercent(config){
var currentProgressPercent;
var totalRecords = Number.parseFloat(config.totalRecords);
var current = Number.parseFloat(config.current);
currentProgressPercent = 0;
if (!(isNaN(totalRecords) || isNaN(current))) {
currentProgressPercent = (totalRecords === 0 ? 100 : Math.round((current / totalRecords) * 100));
}
currentProgressPercent += '%';
return currentProgressPercent;
}
var input = [0, 1, 1.2, 2.156, 0.4, 0.44, 0.1, 0.01, 0.005, 0.0049];
input.forEach(function(value){
alert(calculatePercent({current:value, totalRecords: 1}));
});
您可以根据变量名称的需要进行一些重构。
答案 3 :(得分:1)
首先将数字乘以100,然后使用Math.round()
对结果进行舍入。最后,添加百分号:
Math.round(img.width / naturalWidth * 100) + "%";