| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 140 人关注过本帖
标题:请教筛选平方数
只看楼主 收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2014-4-10
结帖率:76.19%
  已结贴   问题点数: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,'信息提示')
 


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

附件: 您没有浏览附件的权限,请 登录注册
2018-04-13 20:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:158
帖 子:6967
专家分:16153
注 册:2012-2-5
  得分:2 
数值较大时
超过多少时有误差

QQ:243688667
2018-04-13 21:38
厨师王德榜
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:63
帖 子:411
专家分:1415
注 册: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
等 级:版主
威 望:135
帖 子:5633
专家分:24223
注 册:2014-5-20
  得分:2 
取的是整数部分,应该与小数部分无关。
问题是“数值较大时运行结果与笔算怎么会有误差”,到底有多大,是否超出VFP数值精度限制。
2018-04-14 05:17
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2014-4-10
  得分:0 
谢谢各位的指点,谢谢
4 天前 12:26







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

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