(phixonline)--> with javascript_semantics procedure test(atom a,b, string dfmt="%g", cfmt="%g") string ca = sprintf(cfmt,a), cb = sprintf(cfmt,b), eqs = iff(ca=cb?"":"NOT "), da = sprintf(dfmt,a), db = sprintf(dfmt,b) printf(1,"%30s and\n%30s are %sapproximately equal\n",{da,db,eqs}) end procedure test(100000000000000.01,100000000000000.011,"%.3f") test(100.01,100.011,"%.3f") test(10000000000000.001/10000.0,1000000000.0000001000,"%.10f") test(0.001,0.0010000001,"%.10f") -- both test(0.001,0.0010000001,"%.10f","%.10f") -- ways test(0.000000000000000000000101,0.0,"%f") -- both test(0.000000000000000000000101,0.0,"%f","%6f") -- ways test(sqrt(2)*sqrt(2),2.0) test(-sqrt(2)*sqrt(2),-2.0) test(3.14159265358979323846,3.14159265358979324,"%.20f")