建议尽量少用单精度、双精度数据类型的原因
时 间:2011-04-30 00:29:17
作 者:红尘如烟 ID:10768 城市:成都
摘 要:建议尽量少用单精度、双精度数据类型的原因
正 文:
很多人都知道在数据库中如果需要进行精确计算的字段,尽量不使用单精度和双精度这两种数据类型。因为它们属于浮点数,而浮点数采用二进制保存小数,并且进行浮点运算,这就意味着计算的结果准确性会比较差。如果一定需要小数,则可以使用货币(Currency)型和小数(Decimal)型,这两种是量化的整数数据类型,具有高度的正确性。
通过如下代码可以非常清楚的测试出浮点数的准确度不够:
Sub 数据类型对比测试()
Dim sngNum As Single
Dim dblNum As Double
Dim varNum As Variant '小数没有单独的类型,它属于Variant的子类型
Dim curNum As Currency
Dim lngI As Long
For lngI = 1 To 1000
sngNum = sngNum + 0.1
dblNum = dblNum + 0.1
varNum = varNum + CDec(0.1)
curNum = curNum + 0.1
Next
Debug.Print "单精度:" & sngNum
Debug.Print "双精度:" & dblNum
Debug.Print "小数: " & varNum
Debug.Print "货币: " & curNum
End Sub
根据我们的想象,最后的结果应该是1才对,而实际返回结果为:
单精度:99.99905
双精度:99.9999999999986
小数: 100
货币: 100
附 图:
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)

学习心得
最新文章
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)
- Access快速开发平台--如何添...(05.26)