再次请教精度问题(继4月18日《请教筛选平方数》之续)
用以下代码
VFP筛选平方数.rar
(1.56 KB)
CLEAR
CLOSE all
SET SAFETY OFF
SET DECIMALS TO 9
USE 记录表
PACK
ZAP
FOR n=85520000 TO 85553220
FOR i=66610000 TO 66611050
列1 = 2*n*n-i*i
IF INT(SQRT(列1))=SQRT(列1)
APPEND BLANK
REPLACE n的值 WITH n
REPLACE i的值 WITH i
REPLACE 平方数记录 WITH SQRT(2*n*n-i*i)
ELSE
LOOP
ENDIF
ENDFOR
ENDFOR
*------------
DELETE FILE *.BAK
MESSAGEBOX('本 次 运 行 结 束 !!',64,'信息提示')
运行得到:
当n=85529712、i=66610043时,SQRT(2*n*n-i*i)=100964179,但通过笔算2*n*n-i*i=10193765441144039,而100964179*100964179=10193765441144041,显然前者比后者小2,出现误差了,请教先生们如何才能使代码运行得到精确结果,谢谢