我正在尝试以 2 位精度获取 lesscss 文件中的百分比。 在 lesscss 文件中
@w: round(((100-((12-5)*3.8))/(12/5))*100);
width: percentage(@w/10000);
编译宽度:30.580000000000002%; 我做错了什么?
我的逻辑很简单:
步骤1:获取“不正确”的数字30.580000000000002
步骤2:30.580000000000002*100 = 3058.0000000000002
步骤3:四舍五入(3058.0000000000002) = 3058
步骤 4:3058/10000 = 0.3058
步骤 5:百分比(0.3058) = 30.58
最佳答案
您没有考虑浮点计算是用二进制完成的,其中没有 1/10000 的精确表示。因此:
/* 30.580000000000002 */
console.log(Math.round(((100 - ((12 - 5) * 3.8))/(12 / 5)) * 100) / 10000 * 100);
(LESS 是否使用 JavaScript 等 ECMAScript 实现并不重要,只要计算基于 IEEE-754 double float 即可。)
但是,您不应该为此烦恼。
width: 30.580000000000002%;
关于css - 较低的百分比无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401017/