Stačí porovnat Math.floor(value) == value . Nemá-li nic za desetinnou (binární) tečkou, tak zaokrouhlení vrátí zcela stejné číslo. Porovnání s MIN_VALUE nebo nějakou deltou má smysl u něčeho, co číslo mění (aritmetické, konverze atd.).
Původní kód s cast na long bude fungovat pouze v případě, že původní hodnota je v rozsahu long, tedy +-2^63. double má rozsah +-2^1024.