Этот код работает (С# 3)
double d;
if(d == (double)(int)d) ...;
- Есть лучший способ это сделать?
- По внешним причинам я хочу избежать двойного приведения; какие хорошие способы существуют, кроме этого? (даже если они не так хороши)
Примечание. Несколько человек указали на (важный) момент, что == часто вызывает проблемы при переоценке чисел с плавающей запятой. В этом случае я ожидаю значения в диапазоне от 0 до нескольких сотен, и они должны быть целыми числами (не целые числа являются ошибками), поэтому, если эти точки «не должны» быть проблемой для меня.