Scss如何将字符串转换为数值

Scss how convert string to numeric value

我想通过以下函数使用字体大小信息执行数学运算。我使用 sass 内置字符串函数删除了 $font-sizerem 单元信息,但是由于值类型是字符串,我无法执行数学运算。

在sass中有没有办法将字符串值类型转换为数值类型?

@use "../abstracts/variables" as *;
@use "sass:math";

@function em($value, $font-size) {
   
  $length: str-length(#{$font-size}); //sample-think about it font-size 1.125rem

  $trim: ($length - 3);

  $data: str-slice(#{$font-size}, 1, $trim);

  $result: math.div($value, $data);

  @return $result + "em";
}

最好使用辅助函数来删除 $font-size 的单位,例如 this one

@function stripUnit($number) {
    @if meta.type-of($number) == "number" and not math.is-unitless($number) {
      @return math.div($number, $number * 0 + 1);
    }
 
    @return $number;
}

@function em($value, $font-size) {
  $data: strip-unit($font-size);
  $result: math.div($value, $data);

  @return $result + "em";
}