Дротики (тип num
) являются целыми числами (тип int
) или двойными (тип double
).
Легко проверить, является ли число int
,просто сделайте value is int
.
Немного более сложная задача - проверить, имеет ли значение double
целочисленное значение или нет дробной части.На это нет простой функции ответа, но вы можете сделать value == value.roundToDouble()
.Это удаляет любую дробную часть из значения double
и сравнивает ее с исходным значением.Если они одинаковы, то дробной части не было.
Итак, вспомогательная функция могла бы быть:
bool isInteger(num value) =>
value is int || value == value.roundToDouble();
Я использую roundToDouble()
вместо просто round()
, потому что последняятакже преобразует значение в целое число, которое может дать другое значение для больших двойных значений.