Как я могу проверить, содержит ли число с плавающей запятой десятичные числа, такие как 2.10, 2.45, 12382.66, а не 2.00, 12382.00. Я хочу знать, является ли число "круглым" или нет. Как я могу сделать это программно?
Проверьте, содержит ли число с плавающей запятой десятичные знаки или нет.
Ответ 1
Использование модуля будет работать:
if(num % 1 != 0) do something!
// eg. 23.5 % 1 = 0.5
Ответ 2
Я использую эту функцию c для объектного c
BOOL CGFloatHasDecimals(float f) {
return (f-(int)f != 0);
}
Ответ 3
Если вам требуется только около двух десятичных знаков, получите оставшуюся часть, вычислив bool hasDecimals = (((int)(round(x*100))) % 100) != 0;
В общем случае получите дробную часть, как описано в в этом разделе, и сравните ее с 0.
Ответ 4
Вы можете сделать это:
float num = 23.345f;
int intpart = (int)num;
float decpart = num - intpart;
if(decpart == 0.0f)
{
//Contains no decimals
}
else
{
//Number contains decimals
}
Ответ 5
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);
}
}
Ответ 6
PHP
решение:
function hasDecimals($x)
{
return floatval($x) - intval($x) != 0;
}