为什么这些浮点值在Sass中不相等?

海尔·西林

我正在line-heightSass mixin中计算不同的s,以确保不同的元素遵守垂直节奏。我现在$vertical-rhythm-base8px

某些浏览器(至少是Chrome)似乎没有真正意义上的价值,而是在1.33333使用23px而不是所期望的24px因此,我尝试在我的mixin中更正该值:

$vertical-rhythm-base: 8px

=calculateLineHeight($itemFontSize)
  $lineHeightBase: $vertical-rhythm-base * 3
  $itemLineHeight: (ceil($itemFontSize/$lineHeightBase)*$lineHeightBase)/$itemFontSize
  // fix miscalculation for this value since browsers resort to 23px
  // instead of 24px in the current setup.
  @if $itemLineHeight == 1.33333
    $itemLineHeight: 1.3334

  line-height: $itemLineHeight

.someElement
  +calculateLinHeight(18px)
  font-size: 18px

这似乎不起作用,因为应该得到line-height: 1.33334静止的物品line-height: 1.33333

我不明白这里出了什么问题。更改@if为使用=而不是会==导致分配line-height: 1.33334给所有内容,而不是正确地进行计算。

西曼侬

萨斯不进行四舍五入,直到之后的比较已经完成,现在是时候生成输出。您的变量仍然包含重复的小数,即使看起来没有。如果要检查是否相等,则必须将重复值与重复值进行比较:

$foo: 4 / 3;

@debug $foo == 1.33333; // false
@debug $foo == 4 / 3;   // true

请注意,如果Sass在比较时而不是之后进行四舍五入,则只有在使用默认精度设置5时,您的if语句才会评估为true(有许多Sass库需要更高的精度设置,我在上面运行了代码,精度为10)。另请注意,Sass的默认精度之前已更改过一次,将来可能会再次更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么这些值彼此不相等?

来自分类Dev

这些向量为什么不相等?

来自分类Dev

为什么这些对象不相等?

来自分类Dev

为什么OrderedDict的值不相等?

来自分类Dev

为什么这些日期时间对象的时区不相等?

来自分类Dev

这些字符串为什么不相等?

来自分类Dev

为什么这些字符串不相等?

来自分类Dev

相同的浮点值比较不相等

来自分类Dev

为什么断言不相等?

来自分类Dev

为什么相同的字符不相等

来自分类Dev

为什么查询这些不相等?(相关子查询与分组依据)

来自分类Dev

Google Apps脚本:为什么出现相等的字符串/值不相等

来自分类Dev

为什么在SQL Server中生成的MD5哈希值不相等?

来自分类Dev

为什么MySQL在寻找不相等值时会忽略空值?

来自分类Dev

为什么两个等效的ISODate值不相等?

来自分类Dev

为什么这两个值在arduino上不相等?

来自分类Dev

为什么Java中2个Long变量与==运算符不相等?

来自分类Dev

为什么Nim中的相同字符串不相等?

来自分类Dev

为什么每个插槽中的RAM数量不相等会降低性能?

来自分类Dev

c#为什么我的代码中不同类的变量之和不相等?

来自分类Dev

为什么这两个表达式在bash中不相等?

来自分类Dev

如果'x在clojure中求值为(var x),为什么它们不相等?

来自分类Dev

在计算理论中,为什么正则表达式 (ab)* 和 a*b* 不相等?

来自分类Dev

为什么这两个数组不相等?

来自分类Dev

Javascript:为什么两个对象不相等?

来自分类Dev

为什么TreeSet删除不相等的重复项?

来自分类Dev

这两个为什么不相等?

来自分类Dev

为什么这个算术表达式不相等?

来自分类Dev

为什么此比较返回的结果不相等?

Related 相关文章

热门标签

归档