浮動小数点数に2.00、12382.00ではなく2.10、2.45、12382.66などの小数が含まれているかどうかを確認するにはどうすればよいですか。数字が「丸い」かどうか知りたいのですが。プログラムでそれを行うにはどうすればよいですか?
モジュラスの使用は機能します:
if(num % 1 != 0) do something!
// eg. 23.5 % 1 = 0.5
このc関数をObjectiveCに使用します
BOOL CGFloatHasDecimals(float f) {
return (f-(int)f != 0);
}
小数点以下2桁だけが気になる場合は、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);
}
}