社区
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)
大家猜猜結果是什么
...全文
121
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
作业
写回复
配置赞助广告
用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元。 二、小明让小小明在三个红包里面选择一个...
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文件,记为t2.py # t2.py m = 0 n = 1 b = m + n print("t2 b=", b) 现如今我在在另外一个文件t3.py中调用t1.py中的变量a和t2.py中的变量b(这3个py文件在同一文件夹下,具体代码如
职场中14个
有趣
的问题
职场中14个
有趣
的问题,你能回答吗?
连号区间数 小明这些天一直在思考这样一个奇怪而
有趣
的问题:
package org.bluebridge.topics; /* * 连号区间数 小明这些天一直在思考这样一个奇怪而
有趣
的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但
有趣
的海盗分金币问题
最近几天看到一个挺
有趣
的博弈相关的趣谈,今天来分享给大家,并且也会详细讲解最终问题的最优解,并且我还好通过这道题扯一扯递归。 问题描述 有 5 个海盗,获得了 100 枚金币,于是他们要商量一个方法来分配金币。商议方式如下: 由 5 个海盗轮流提出分配方案,规则如下 1、如果超过半数海盗(包括提出者)同意该方案,则按照该方案分配。 2、如果同意该方案的人数(包括提出者)小于等于半数,则提出者要被扔...
VFP
2,748
社区成员
29,138
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章