计算精确的百分比宽度

Calculating Exact Percentage Width

本文关键字:百分比 计算      更新时间:2023-09-26

我正在编写一个应用程序,该应用程序可以自动将列添加到div中。(div内部的div)。这个问题与奇数球柱宽度有关,例如6。6不能等分为100%,所以我的解决方案是找到小数后的余数,并将其添加到最后一列。

出于某种原因,当我计算余数时,它是0.399999999915,而不是.4

这是我的jQuery

var numCol = $('.column').length,
        colWid = Math.floor((100 / numCol) * 10) / 10,
        numRem = 100 - (colWid * numCol);
    $('.column').width(colWid + '%');
    $('.column:last-child').width(colWid + numRem + "%");
    alert(numRem);

我应该使用Math.round吗?我担心这可能会在以后引起一些问题。


使用解决

var numCol = $('.column').length,
        colWid = Math.floor((100 / numCol) * 1000) / 1000,
        numRem = (100 - (colWid * numCol)).toFixed(3);
    $('.column').width(colWid + '%');
    $('.column:last-child').width(Number(numRem)+ colWid +'%');

这不是一个错误。这就是浮点的设计方式。您可以使用number.toFixed()将浮点转换为字符串

toFixed接受多个数字作为参数。

将Math.floor函数应用于整体计算,numCol必须是整数或必须转换为整数。

colWid = Math.floor(((100 / numCol) * 10) / 10)

代替

colWid = Math.floor((100 / numCol) * 10) / 10