用三个数字创建一个百分数。

3
我正在尝试编写一个小脚本,将三个数字转换为三个百分比。Jquery可以设置三个彩色div的宽度,以反映这些数字的“分布”。
可以把它想象成一个由三部分组成的加载条。
我已经为两部分加载条做了一些煮意大利面,但我不知道如何添加第三个百分比。数学好的人应该能够将三个数字转换为三个百分比(总和为100)。 http://jsfiddle.net/gzz46/1/
 var xwidth = (+x/(+x+y)*100);
 var ywidth = (+100-xwidth);
 //var zwidth = (+100-ywidth);

1
你是说你想把3个数字加在一起(这将等于100%),然后找出每个数字的百分比?在你的jsfiddle示例中,你的数字是10、15、20。将它们全部相加= 45,从45中分别除以每个数字,10/45 = .222(或22.22%),15/45 = .333(或33.33%),20/45 = .444(或44.44%)。 - ntgCleaner
你不能仅仅将一个数字转换成百分比。你需要一个数字和一个总值或最大值。然后只需使用第一个数字/最大数字*100。 - Luke Joshua Park
1个回答

5

将它们全部相加得到45,将每一个数除以45:10/45 = 0.222(或22.22%),15/45 = 0.333(或33.33%),20/45 = 0.444(或44.44%)

如果您正在尝试执行我的评论中提到的操作,请将您的代码更改为以下内容:

var x = 10;
var y = 15;
var z = 20;

var total = x+y+z;

var xwidth = (x/total)*100;
var ywidth = (y/total)*100;
var zwidth = (z/total)*100;

$(".x").css('width', xwidth+'%');
$(".y").css('width', ywidth+'%');
$(".z").css('width', zwidth+'%');

或者,更简洁一些:
var x = 10;
var y = 15;
var z = 20;
var total = x+y+z;

$(".x").css('width', (x/total)*100+'%');
$(".y").css('width', (y/total)*100+'%');
$(".z").css('width', (z/total)*100+'%');

2
太棒了。感谢ntgCleaner提供快速、干净、简洁的答案! - Liam Hogan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接