建议尽量少用单精度、双精度数据类型的原因
时 间: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)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)

学习心得
最新文章
- 仓库管理实战课程(17)-库存明细...(05.13)
- 【Access高效办公】条件格式设...(05.12)
- 仓库管理实战课程(16)-联合查询...(05.07)
- 合并列数据到一个文本框的示例;输出...(05.06)
- 仓库管理实战课程(15)-月度库存...(04.30)
- Access选择打印机、横纵向、纸...(04.29)
- 仓库管理实战课程(14)-出库功能...(04.26)
- 通过命令按钮让Access列表框指...(04.24)
- 仓库管理实战课程(13)-入库功能...(04.21)
- Access控件美化之--美化按钮...(04.19)