| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1472 人关注过本帖
标题:请教 :小数取到16位有效值的问题
只看楼主 加入收藏
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
结帖率:58.02%
收藏
 问题点数:0 回复次数:8 
请教 :小数取到16位有效值的问题
要小数点后16位有效小数点,但vfp好像只能取到有效13位小数,比如300除1.05=285.7142857142857 ,但我实际小需要的值是300除1.05=285.714285714285714 (多出两位有效小数) 如果SET DECIMALS TO 18 也返回不了16位小数 它显示成285.714285714285700  
VB中有很好的解决办法:如下  
Dim a As Variant
a = 22
a = a / 7
Debug.Print a
上述代码的运行结果为 3.14285714285714,这是双精度浮点数的精度极限(15位有效数字)。
如果代码改为:
Dim a As Variant
a = CDec(22)
a = a / 7
Debug.Print a
则显示结果为:3.1428571428571428571428571429
搜索更多相关主题的帖子: 小数点 极限 
2017-03-27 20:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这样也只能是15位有效数字
set deci to 18
?22/7



DO IT YOURSELF !
2017-03-27 20:34
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
收藏
得分:0 
因为我需要用到小数点后面保留16位有效数字,可是VFP最多就13位有效小数点,我用windows的计算器(科学型)结果是这样285.71428571428571428571428571429  如果标准型是这样285.7142857142857 这个结果就是VFP里的16精度的结果,不够用,要科学型这样的结果,哪怕是多2位小数也行,有办法吗?
2017-03-27 20:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
vfp 高级版本不清楚  6.0貌似只能到小数点后15位 再多就截断了

DO IT YOURSELF !
2017-03-27 20:48
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
显示最多18位:符号 + 整数部分 + 小数点 + 小数部分。

[此贴子已经被作者于2017-3-27 22:14编辑过]

2017-03-27 22:13
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1733
专家分:3329
注 册:2012-2-29
收藏
得分:0 
测试,2楼办法可行。
2017-03-28 06:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
如果只是显示运算结果看看的,应该有办法。
如果是要保证16位小数运算精度,应不能用数值运算。
或者可以试试用字符串形式“运算”,如"123"/"456"="0.2697368421052632"
2017-03-28 08:50
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
赞成7楼。直接数值运算会出现精度问题。用程序加入字符方式运算可能会解决。
2017-03-28 10:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
VFP的数值型字符限制是20个,符号 + 整数部分 + 小数点 + 小数部分 = 20个字符,其中小数部分数字限制最多是19个。
2017-03-28 10:38
快速回复:请教 :小数取到16位有效值的问题
数据加载中...
 
   



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

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