如何判断值是整数(整数)还是包含小数?在Javascript中,我们有isInteger个,但我在DART中找不到对应的.

我们好像有isEvenisOddisFiniteisInfiniteisNaNisNegative的支票,但没有isInteger张?

推荐答案

DART编号(类型num)可以是整数(类型int)或双精度(类型double).

判断一个数字是否是int很容易,只需做value is int即可.

稍微困难一点的任务是判断double值是否有整数值,或者没有小数部分.没有简单的函数可以回答这个问题,但你可以做value == value.roundToDouble().这将从double值中删除任何小数部分,并将其与原始值进行比较.如果它们是相同的,那么就没有分数部分.

因此,辅助函数可以是:

bool isInteger(num value) => 
    value is int || value == value.roundToDouble();

我使用roundToDouble()而不是round(),因为后者也会将值转换为整数,对于大的双精度值,可能会给出different.

Dart相关问答推荐

异类列表中函数类型不变性的解决方法

如何找到这个Currate函数的返回类型?

如何在 Dart 2.17+ 中处理future 的枚举值

Flutter Web:无法用鼠标向下滚动(drag)(Flutter 2.5+)

如何从 Polymer Dart 触发自定义事件?

InheritedWidget - 在 navigator.push 之后在 null 上调用 getter

如何在 Flutter/dart 中获取一周中特定日期的日期?

有没有可能用Flatter摄像头插件播放视频?

为什么使用Dart作为前端开发人员?

如何解决Id does not exist错误?

如何在flatter中读取本地json导入?

Flutter:测试期间的计时器问题

Flutter:主题未应用于文本小部件

如何提取dart/Flutter视频元数据

dart2js代码比javascript快多少?

如何在 Dart 中替换字符串中间的空格?

如何判断switch/case中对象的类型?

Dart 是否有断点语句?

Dart:Iterable 与 List,总是使用 Iterable?

如何在 Dart 中扁平化map列表?