在Sass中舍入数字并调整小数位数

问题描述:

是他们在sass中更改舍入发生的位数的方法,我想停止舍入这样的数字,例如2.0242914979757085%到这个2.024%。我想调整小数的量在输出CSS在Sass中舍入数字并调整小数位数

从SASS变化日志:

号码在萨斯的数值精度现在可以使用--precision选项到命令行来设置。此外,现在可以通过将Sass :: Script :: Number.precision设置为一个整数(默认为3)来更改Sass输出中默认的精度位数。由于此值现在可以更改,因此Sass :: Script :: Number中的PRECISION常量已被弃用。如果你在你的代码中使用它,你现在应该使用Sass :: Script :: Number.precision_factor来代替。

这是在SASS 3.1.8中添加的。

+0

划分,我想我的措辞错了,我想保持2.024291,但上海社会科学院保持它四舍五入到2.024,我想停下来那 – Lawrence 2012-04-29 05:18:10

+0

我已经更新了我的答案。 – Bill 2012-04-29 05:21:35

+0

好吧,看起来像我需要但不知道如何使用它 – Lawrence 2012-04-29 05:25:30

你也可以做到以下几点:

@function ceilHundredths($numbers) { 
    $numbers: $numbers * 10000; 

    @if ($numbers < 1) { 
     $numbers: $numbers - 1; 

    } @else { 
     $numbers: $numbers + 1; 
    } 

    @return round($numbers)/ 100#{"%"}; 

} 

.test--regular { 
    margin-left: percentage(-1/3); 
} 

.test { 
    margin-left: ceilHundredths(-1/3); 
} 

.test--regular--2 { 
    margin-left: percentage(1/3); 
} 

.test--2 { 
    margin-left: ceilHundredths(1/3); 
} 

你可以使用下面的函数,这是function created by Takeru Suzuki略有改善:

@function decimal-round ($number, $digits: 0, $mode: round) { 
    $n: 1; 
    // $number must be a number 
    @if type-of($number) != number { 
     @warn '#{ $number } is not a number.'; 
     @return $number; 
    } 
    // $digits must be a unitless number 
    @if type-of($digits) != number { 
     @warn '#{ $digits } is not a number.'; 
     @return $number; 
    } @else if not unitless($digits) { 
     @warn '#{ $digits } has a unit.'; 
     @return $number; 
    } 
    @if $digits > 0 { 
     @for $i from 1 through $digits { 
      $n: $n * 10; 
     } 
    } 
    @if $mode == round { 
     @return round($number * $n)/$n; 
    } @else if $mode == ceil { 
     @return ceil($number * $n)/$n; 
    } @else if $mode == floor { 
     @return floor($number * $n)/$n; 
    } @else { 
     @warn '#{ $mode } is undefined keyword.'; 
     @return $number; 
    } 
} 

输出:

decimal-round(0.333) => 0 
decimal-round(0.333, 1) => 0.3 
decimal-round(0.333, 2) => 0.33 
decimal-round(0.666) => 1 
decimal-round(0.666, 1) => 0.7 
decimal-round(0.666, 2) => 0.67 

无任何额外功能的快速选项蒸发散将是1000乘以数量,然后绕着它,然后通过1000

round($percent * 1000)/1000;