繁体   English   中英

计算精确百分比宽度

[英]Calculating Exact Percentage Width

我正在编写一个将列自动添加到div中的应用程序。 (Div内的Divs)。 问题出在诸如6之类的奇怪的球列宽度上。6不能平均分为100%,所以我的解决方案是找到小数点后的余数并将其添加到最后一列。

由于某些原因,当我计算余数时,它是0.3999999999999915而不是.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()将float转换为字符串

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

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

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

代替

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM