3 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
public static boolean nearlyEqual(float a, float b, float epsilon) { final float absA = Math.abs(a); final float absB = Math.abs(b); final float diff = Math.abs(a - b); if (a == b) { // shortcut, handles infinities return true; } else if (a == 0 || b == 0 || diff < Float.MIN_NORMAL) { // a or b is zero or both are extremely close to it // relative error is less meaningful here return diff < (epsilon * Float.MIN_NORMAL); } else { // use relative error return diff / (absA + absB) < epsilon; }}

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
A < B
A > B
if(A - B < Epsilon) && (fabs(A-B) > Epsilon){ printf("A is less than B");}if (A - B > Epsilon) && (fabs(A-B) > Epsilon){ printf("A is greater than B");}

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
final float TOLERANCE = 0.00001;if (Math.abs(f1 - f2) < TOLERANCE) Console.WriteLine("Oh yes!");
double a = 1.0 / 3.0;double b = a + a + a;if (a != b) Console.WriteLine("Oh no!");
a = 1/3b = 1/3 + 1/3 + 1/3 = 1.1/3 != 1
if (b != 1) Console.WriteLine("Oh no!")
添加回答
舉報(bào)