社区
VFP
帖子详情
一個有趣的問題
s_111111
2008-07-09 09:50:42
CLEAR
Create Cursor AAA(A N(16,5))
Insert Into AAA(A) Values (2684.18000)
?Int(AAA.A*100000)
Create Cursor AAA(A N(16,5))
Insert Into AAA(A) Values (2685.18000)
?Int(AAA.A*100000)
大家猜猜結果是什么
...全文
133
11
打赏
收藏
一個有趣的問題
CLEAR Create Cursor AAA(A N(16,5)) Insert Into AAA(A) Values (2684.18000) ?Int(AAA.A*100000) Create Cursor AAA(A N(16,5)) Insert Into AAA(A) Values (2685.18000) ?Int(AAA.A*100000) 大家猜猜結果是什么
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
s_111111
2008-07-17
打赏
举报
回复
小問題還是蠻多的呀
s_111111
2008-07-11
打赏
举报
回复
是INT()函數的一個BUG嗎,為什么還不改正他,都20年了
十豆三
2008-07-11
打赏
举报
回复
上面用ROUND是因为4舍5入了。
十豆三
2008-07-11
打赏
举报
回复
所以我还是认为是由处理器计算的造成的。
十豆三
2008-07-11
打赏
举报
回复
?str(9.2222,50,18)
如果是Int的Bug,这个又如何解释?
都市夜猫
2008-07-09
打赏
举报
回复
应该还是精度问题
v1 = 2684.18000
v2 = 2684.1800
? v1*100000, int(v1*100000)
? v2*100000, int(v2*100000)
十豆三
2008-07-09
打赏
举报
回复
x=1234567890.0987654321
? x
你的问题也这个差不多,是处理器计算的造成的。
s_111111
2008-07-09
打赏
举报
回复
但是我這個問題不是精度問題吧,他們長度都一樣,但結果不一樣。
結果是:268417999
268518000
表明他不是長度精度問題。
十豆三
2008-07-09
打赏
举报
回复
数字精度
当在 数值型 字段中存储浮点数字时,Visual FoxPro 中的数字精度被限定为大约 15 个阿拉伯数字。因此,当把十进制转换为二进制数、以二进制存储带有无限循环小数值的数字、执行多个重复运算,以及在 Character 字段和以二进制格式在内存变量中存储数字值时,超过 15 个阿拉伯数字的精度可能被丢失。
这个限制是基于 Pentium 系列处理器计算和存储浮点数的方式,并遵从了电机工程师协会(IEEE)以二进制格式操作浮点数字的浮点规范。这个标准使浮点数字以合理的空间数被存储并实现更快速的计算。
例如,分数 1/10 可以被表示为十进制值 0.1。然而,当以二进制存储 1/10 时,十进制值就不同于该分数了。相反,该分数是一个循环的二进制小数 0001100110011100110011 等等。这种数字类型不能在有限的内存中被表示,因此,当以二进制存储时,十进制值被四舍五入。
有关要求更高精度的值,请参见 双精度型字段类型。
有关浮点数字被存储和 Pentium 系列处理器如何处理它们的计算的更详细信息,请参见 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q78113 上的 Microsoft Knowledge Base Article - Q78113, "XL: Floating-Point Arithmetic May Give Inaccurate Results"。
下面示例举例说明了 数值型 数据类型对于浮点数数字精度方面的限制:
复制代码
x=1234567890.0987654321
? x
结果是 1234567890.0987650000。
cbl518
2008-07-09
打赏
举报
回复
这是vfP 的 int() 函数,20 多年前就存在的一个问题!
用 ROUND 函数替代 INT 函数:
CLEAR
Create Cursor AAA(A N(16,5))
Insert Into AAA(A) Values (2684.18000)
?ROUND(AAA.A*100000,0)
Create Cursor AAA(A N(16,5))
Insert Into AAA(A) Values (2685.18000)
?ROUND(AAA.A*100000,0)
s_111111
2008-07-09
打赏
举报
回复
还是不很清楚,我看他并没有超过他的最大长度,小数位也没超过
就拿2685.18000和2684.18000比较,如果是精度问题的话,转换整形后应该都变才对。
2048.18000以1递增直到2684.18000之间的每个数乘以100000再转整形后,小数位都会变为17999,如果是精度问题的话该怎么解释
一个
有趣
的概率问题
来一起看一个例子,并想象一下如果是你,你会怎么选择? 一、小明要给小小明发红包,为此,他准备了三个红包A、B、C,其中只有一个红包是1000元的,其余两个都是500元。 二、小明让小小明在三个红包里面选择一...
1055: 兔子繁殖问题 这是一个
有趣
的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。
这是一个
有趣
的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有...
python 在一个py文件中调用另一个py文件中的变量以及一个
有趣
的问题
python 在一个py文件中调用另一个py文件中的变量以及一个
有趣
的问题 1、在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a = m + n print("t1 a=", a) 新建一个py文件,记...
有趣
问题——倒水问题
刚拿到这个问题,我们可能互相倒来倒去,试了好久都没成功,但也许我们偶尔能成功,但是如果容器的容量又变了呢,或者要取的容量变了,我们是否可以从这类问题中寻找出一个规律,这才是解题的关键。 方法1:规约...
职场中14个
有趣
的问题
职场中14个
有趣
的问题,你能回答吗?
VFP
2,748
社区成员
29,140
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章