爱问知识人 爱问教育 医院库

VB计算结果不精确,怎么处理?

首页

VB计算结果不精确,怎么处理?

Dim num1 As Double '第一个操作数
Dim num2 As Double '第二个操作数
Dim result As Double '表示运算结果
我如果计算1000-1001.8,结果会显示成-1. 77795
而result定义成single,currency则不会出现这个问题,但是single计算的结果太少,只要是上千万的结果,就会转换成科学计数法,而currency则小数点后面只保留4位小数,也不可行,有朋友碰上过这种问题吗?帮下忙吧,急啊~~

提交回答
好评回答
  • 2010-04-08 11:48:28
    当然遇到过,不光是VB,所有的语言都有这个问题,因为在电脑中没有绝对精确的数字,如果它是浮点型的就会有很多的小球位,这是由于电脑为了保证尽量精确造成的,您可以使用round或format函数来规范结果,这样生成的结果可以四舍五入,另外我还想起一个方法,但是不知道是否可行,因为是刚想出来的,所以没有检验,这个方法就是:在窗体上托两个控件用来存储两个数,最后的结果等于text1.text减去text2.text,估计这个方法可行~回答完毕,祝您好运。

    海***

    2010-04-08 11:48:28

其他答案

    2010-04-10 02:53:47
  • float型为16位,但最后一位为不精确位,所以无法显示准确的值

    天***

    2010-04-10 02:53:47

  • 2010-04-10 01:15:19
  • 你可以看一下参考资料链接的文章"浮点数精确运算的分析和解决办法",说明的产生这种问题的原因并提供了解决办法.

    M***

    2010-04-10 01:15:19

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):