| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2770 人关注过本帖
标题:VB中如何解决浮点问题?
只看楼主 加入收藏
wudimp
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-19
收藏
 问题点数:0 回复次数:21 
VB中如何解决浮点问题?
VB中如何解决浮点问题?
比如:
dim a as double
dim b as double
dim c as double
a=45.3
b=45
c=a-b
print c
此时C应该等于0.3,但是结果却是0.2999999.....
如何能够精确的表示出来呢?
在度分秒转换的时候出现的这个问题:比如我想转换45°30′00″成45.5°但是却表示成为45.51111111...
就是要解决这个问题,那位高手给个办法吧 谢谢啦!
搜索更多相关主题的帖子: VB中 点问题 分秒 doubledim 
2007-01-21 17:12
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
你來個四捨五入不就行了?

format(a,"#.#") a是變量

这个社会太复杂。。。
2007-01-21 17:54
wudimp
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-19
收藏
得分:0 
好象不行吧?
比如说45°30′00″转化成度应该是45.5°,我保留小数点后4位,应该是45.5000,可要是四舍五入的话就成了45.5111 还是不精确的
2007-01-25 10:35
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
得分:0 

Private Sub Command2_Click()
Dim a As Variant
Dim b As Variant
Dim c As Single

a = 45.3
b = 45
c = a - b

MsgBox "" & c & ""

End Sub

把定义类型变一下就可以了!


2007-01-25 10:48
wudimp
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-19
收藏
得分:0 

可要是把c的类型变换为double,又和原来的问题一样了,这个是什么原因?
我担心我程序里需要double类型的数据.

2007-01-25 10:58
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
得分:0 
single精确度一般已经够了。
正常的数据不需要那么精确!

2007-01-25 12:40
wudimp
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-19
收藏
得分:0 
我试试吧,我主要是涉及三角函数计算,在工程计算上使用.
2007-01-25 14:42
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用wudimp在2007-1-25 10:35:43的发言:
好象不行吧?
比如说45°30′00″转化成度应该是45.5°,我保留小数点后4位,应该是45.5000,可要是四舍五入的话就成了45.5111 还是不精确的

四捨五入怎麼可能是 45.5111呢 ?

45°30′00″轉化成度就是 45.5000 整除了啊....30/60=0.5000 怎麼會出現0.5111呢
這方法可以的..我以前也遇到過這樣的問題,就這樣的解決了

[此贴子已经被作者于2007-1-25 15:24:51编辑过]


这个社会太复杂。。。
2007-01-25 15:24
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
得分:0 
45°30′00″转化成度应该是45.5°,我保留小数点后4位,应该是45.5000,可要是四舍五入的话就成了45.5111 还是不精确的
原来的搂住说的没错的,那样的方法不对,结果确实是:45.5111 。
默写情况写用Format是没问题的,但在精度上,有时候还是有问题的。

2007-01-25 15:48
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
怎麼會是45.5111 呢 ?
你們怎麼換算的?

这个社会太复杂。。。
2007-01-25 15:50
快速回复:VB中如何解决浮点问题?
数据加载中...
 
   



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

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