css - 较低的百分比无法正常工作

标签 css less

我正在尝试以 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%;

perfectly Valid CSS .

关于css - 较低的百分比无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401017/

相关文章:

jquery - 模态下方的下拉内容

html - (SCSS)根据后续元素的状态更改前面元素的属性

css - 嵌套 Mixins LESS 解析错误

node.js - 在Windows Azure上的node.js项目中编译less文件

css - 尝试在 LESS 中覆盖 Bootstrap 表格条纹颜色不适用?

css - 如何防止包含的 LESS 文件像 SCSS 那样自行编译?

php - 使用 PHP 获取和设置内联样式

javascript - 如何在 TUI 日历中禁用设置随机日程顺序

html - 如果我放大,div 容器就会消失

twitter-bootstrap - Twitter Bootstrap 将徽章设置为无填充(或轮廓)?