这样几行代码
Dim a As Single
Dim b As Single
a = 2600
b = 2601.1
Debug.Print b - a为什么结果是 1.100098
用double 会有更长的尾巴,但不一样.
可以自己试一下.应该是 1.100000 才对呀.
有没有高手讲一下,散分!!!
谢过!!!
Dim a As Single
Dim b As Single
a = 2600
b = 2601.1
Debug.Print b - a为什么结果是 1.100098
用double 会有更长的尾巴,但不一样.
可以自己试一下.应该是 1.100000 才对呀.
有没有高手讲一下,散分!!!
谢过!!!
解决方案 »
- 请各位老师指点
- 急寻Trio运动控制器(PCI208)合作开发,价钱详谈
- vb中的内存泄漏問題
- 请问哪位朋友给我一份《汽车修理管理系统》的VB+SQL源码
- 请教,使用 BULK INSERT 提示"第 1 行、第 6 列(呼叫开始时间)发生大容量插入数据转换错误(类型不匹配)。"内详
- 怎样将格式为ansi的文件转换为utf-8格式
- 利用vb如何实现录音功能?(在线等待
- 急! 请各为大侠帮忙了。
- 如何实现CommandButton的Caption属性中的字体颜色。。。
- 怎幺读出word文件的内容,放到txt文件中.
- 客户端连接服务器问题,很着急!请大侠帮忙
- Webbrowser控件的难题, 搞定100元!
你精度要求高可以用currency类型,你试试
Private Sub Form_Load()
Dim a As Currency
Dim b As Currency
a = 2600
b = 2601.1
Debug.Print b - a
End Sub
Private Sub Command1_Click()
Dim a As Currency
Dim b As Currency
a = 2600
b = 2601.00001
Debug.Print b - a
End Sub
结果是1
Currency 变量存储为 64 位(8 个字节)整型的数值形式,然后除以 10,000 给出一个定点数,其小数点左边有 15 位数字,右边有 4 位数字。这种表示法的范围可以从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。Currency 的类型声明字符为at号 (@)。Currency 数据类型在货币计算与定点计算中很有用,在这种场合精度特别重要。
debug.print Format((b - a), "#0.###")
也没有问题
一般解决方法就是用round()函数来指定小数点后的位数.
format
喜欢哪个用哪个
format
喜欢哪个用哪个
只是原来不太清楚他就怎么会变了,经过大家指点
俺又了解多了一些.
感谢大家捧场.