| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 223 人关注过本帖
标题:请教筛选平方数
只看楼主 收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2014-4-10
结帖率:75%
  已结贴   问题点数: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
等 级:版主
威 望:164
帖 子:7113
专家分:16723
注 册:2012-2-5
  得分:2 
数值较大时
超过多少时有误差
2018-04-13 21:38
厨师王德榜
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:433
专家分:1563
注 册: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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:145
帖 子:5929
专家分:25869
注 册:2014-5-20
  得分:2 
取的是整数部分,应该与小数部分无关。
问题是“数值较大时运行结果与笔算怎么会有误差”,到底有多大,是否超出VFP数值精度限制。
2018-04-14 05:17
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2014-4-10
  得分:0 
谢谢各位的指点,谢谢
2018-04-18 12:26







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

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