标题:请教筛选平方数
只看楼主
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
已结贴  问题点数:6 回复次数:4 
请教筛选平方数
先生好,我编了筛选平方数的代码,对于数值较小时运行结果精确正确,对于数值较大时运行结果与笔算怎么会有误差的,请先生指导,代码如下,谢谢
CLEAR
CLOSE  all
SET SAFETY OFF
USE 记录表
PACK
ZAP
  FOR n=10 TO 20                  
   FOR i=1 TO 10
列1 = 2*n*n-i*i            
    IF   INT(SQRT(列1))=SQRT(列1)   
        APPEND BLANK
        REPLACE  n的值 WITH  n
        REPLACE  i的值 WITH  i                                               
        REPLACE  平方数记录 WITH  2*n*n-i*i
       ELSE     
       LOOP      
    ENDIF
 ENDFOR
ENDFOR
*------------
  DELETE FILE *.BAK
 MESSAGEBOX('本 次 运 行 结 束 !!',64,'信息提示')
 
VFP筛选平方数.rar (4.63 KB)


[此贴子已经被作者于2018-4-13 20:45编辑过]

搜索更多相关主题的帖子: 筛选 平方 记录 REPLACE WITH 
2018-04-13 20:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
数值较大时
超过多少时有误差

坚守VFP最后的阵地
2018-04-13 21:38
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:2 
在SET SAFETY OFF 后面加一句 SET DECIMALS TO 3 ,再运行一次,看看结果;
再把精度改为 SET DECIMALS TO 4,运行一次,看看结果;
随着精度值提高,或许你会有所发现……
你这个估计至少要设置到 SET DECIMALS TO 4 以上,才会有正常结果。

你这是个好问题,估计好多人平时不会注意到 SET DECIMALS TO 这个设置命令。毕竟平时处理普通的数据,默认的精度已经够用了。
2018-04-13 22:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
取的是整数部分,应该与小数部分无关。
问题是“数值较大时运行结果与笔算怎么会有误差”,到底有多大,是否超出VFP数值精度限制。
2018-04-14 05:17
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
谢谢各位的指点,谢谢
2018-04-18 12:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486052-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.197227 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved