Как я могу проверить, содержит ли число с плавающей точкой десятичные дроби, такие как 2.10, 2.45, 12382.66, а не 2.00, 12382.00. Я хочу знать, является ли число "круглым" или нет. Как я могу сделать это программно?
Использование модуля будет работать:
if(num % 1 != 0) do something! // eg. 23.5 % 1 = 0.5
Я использую эту функцию c для цели c
BOOL CGFloatHasDecimals(float f) { return (f-(int)f != 0); }
Если вам нужны только два знака после запятой, получите остаток, вычислив bool hasDecimals = (((int)(round(x*100))) % 100) != 0;
bool hasDecimals = (((int)(round(x*100))) % 100) != 0;
В общем случае получите дробную часть, как описано в этой теме , и сравните ее с 0.
Вы можете сделать это:
float num = 23.345f; int intpart = (int)num; float decpart = num - intpart; if(decpart == 0.0f) { //Contains no decimals } else { //Number contains decimals }
import java.lang.Math; public class Main { public static void main(String arg[]){ convert(50.0f); convert(13.59f); } private static void convert(float mFloat){ if(mFloat - (int)mFloat != 0) System.out.println(mFloat); else System.out.println((int)mFloat); } }