/* * <日付を入力> * 計算機イプシロンを求めるサンプルプログラム */ public class MachineEpsilon { // フィールド static final double X_MAX = 2.0*Math.PI; // 計算の最大値 static final double MINI_DIV = X_MAX/100.0; // 微小区間の定義 // メインメソッド public static void main(String [] args) { // float型の計算機イプシロンを代入する変数 float float_eps = 1.0f; float flt; // double型の計算機イプシロンを代入する変数 double double_eps = 1.0; double dbl; // fltが1.0より大きい数値の最小値を求める. flt = 1.0f + float_eps; while (flt > 1.0) { float_eps /= 2.0; flt = 1.0f + float_eps; } // dblが1.0より大きい数値の最小値を求める. dbl = 1.0 + double_eps; while (dbl > 1.0) { double_eps /= 2.0; dbl = 1.0 + double_eps; } // 計算機イプシロンの表示 System.out.println("float epsilon: " + float_eps); System.out.println("double epsilon: " + double_eps); } // main } // class Epsilon