在Dart中如何检查给定的数字是int还是double?

1,167 阅读1分钟

在Dart中,我们有两种数字类型 - int, double

int 表示整数,不包含小数或小数的数字 存储包含小数值的浮动数字。double

如何检查给定的数字是int还是double?

我们有多种方法可以检查

  • 使用is运算符

dart是用来检查变量是否为给定类型的操作符。

语法:

variable is datatype

如果变量属于给定的数据类型,则返回真,否则返回假。 这个检查是作为num类型的一个扩展而添加的。

下面是一个检查给定数字是int还是double的程序实例。

void main() {
  num intValue = 12;
  num doubleValue = 11.12;
  print(intValue.isIntValue()); // true
  print(doubleValue.isIntValue()); // false
}

extension WholeNumber on num {
  bool isIntValue() => this is int;
}

  • 使用模数运算符

模数运算符在两个操作数除以后给出一个余数。

如果给定的数字是一个整数,那么该值被除以1,并给出余数为零,如果给定的数字是一个双数或小数,那么除以1后的余数不是零。

下面是一个检查给定的数字是否包含小数的示例程序。

void main() {
  num intValue = 12;
  num doubleValue = 11.12;
  print(intValue.isIntValue()); // true
  print(doubleValue.isIntValue()); // false
}

extension WholeNumber on num {
  bool isIntValue() => (this % 1) == 0;
}


  • 使用toInt方法

使用toInt 方法对给定的数字进行截断。如果给定的数字是11.12,toInt返回int数字,即11。检查原始值和结果,如果两者相等,就是一个整数。

下面是一个示例程序

void main() {
  num intValue = 12;
  num doubleValue = 11.12;
  print(intValue.isIntValue()); // true
  print(doubleValue.isIntValue()); // false
}

extension WholeNumber on num {
  bool isIntValue() => this ==this.toInt();
}

总结

有多种方法可以检查给定的数字是整数还是小数,在下面的dart例子中的方法:

  • 使用toInt方法
  • dart是运算器
  • 使用模数运算符