Double型相减的问题

lywei123 2005-03-03 09:05:09
Private Sub Command2_Click()
Dim a As Double

Dim LdNum1 As Double
Dim LdNum2 As Double

LdNum1 = 11111111.1

LdNum2 = 11111111

a = LdNum1 - LdNum2

End Sub

请问怎么才能让a = 0.1 呢?如果a可能有4位以上的小数时呢?
...全文
180 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2005-03-04
  • 打赏
  • 举报
回复
用Currency最多只能有4位小数,假设有6位小数的话,可以把这个数看作是实际值的100倍
viena 2005-03-04
  • 打赏
  • 举报
回复
要使运算精确,最好用定点类型
可以用Currency,64位定点数,是精确的,但最多只能有4位小数
viena 2005-03-04
  • 打赏
  • 举报
回复
二存储位数是有限的,要舍去后面部分,必然会产生结果误差~
viena 2005-03-04
  • 打赏
  • 举报
回复
计算机的数是二进制存储的
十进制有限小数,转为二进制可能就是无限小数
viena 2005-03-04
  • 打赏
  • 举报
回复
浮点运算不精确,除非小数部分是2的N次方分之一的和
xmuyyd 2005-03-04
  • 打赏
  • 举报
回复
Private Sub Command2_Click()
Dim a As Double

Dim LdNum1 As Double
Dim LdNum2 As Double

LdNum1 = 11111111.1

LdNum2 = 11111111

a = format((LdNum1 - LdNum2),"0.0")

End Sub
ZWB_ZYN 2005-03-03
  • 打赏
  • 举报
回复
round函数

Private Sub Command2_Click()
Dim a As Double

Dim LdNum1 As Double
Dim LdNum2 As Double

LdNum1 = 11111111.1

LdNum2 = 11111111

a = round((LdNum1 - LdNum2),1)

End Sub

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧