web-dev-qa-db-ja.com

浮動小数点数に小数が含まれているかどうかを確認します

浮動小数点数に2.00、12382.00ではなく2.10、2.45、12382.66などの小数が含まれているかどうかを確認するにはどうすればよいですか。数字が「丸い」かどうか知りたいのですが。プログラムでそれを行うにはどうすればよいですか?

14
Sam

モジュラスの使用は機能します:

if(num % 1 != 0) do something!
// eg. 23.5 % 1 = 0.5
48
Knights

このc関数をObjectiveCに使用します

BOOL CGFloatHasDecimals(float f) {
    return (f-(int)f != 0);
}
7
Alex Markman

小数点以下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
  }
3
Owen
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);
    }
}
2
Ashish