我的代码定义的是double类型的,但是当数据太大时,计算结果的误差就会很大,请问如何解决这个问题啊。
Dim k0 As Double
Dim k1 As Double
Dim pt As Double
Dim p15 As Double
Dim p155 As Double
Dim a As Double
Dim vcf15 As Double
If p <= 770 And p >= 653 Then ''''''''''''''''''''653~770 石油产品
k0 = 346.4228
k1 = 0.4388
pt = p * (1 - 2.3 * 10 ^ (-5) * (t1 - 20) - 2 * 10 ^ (-8) * (t1 - 20) * (t1 - 20))
p15 = pt
Do
p155 = p15
a = k0 / (p155 * p155) + k1 / p155
vcf15 = Exp(-a * (t1 - 15) * (1 + a * (t1 - 15) * 0.8))
p15 = pt / vcf15
Loop Until Abs(p15 - p155) < 0.005
当t1的数值较大时,超过50的话,计算结果就会出现误差,而且误差较大,请问如何解决这个问题啊。我用了format函数,但是计算结果还是误差较大。
VB中double计算误差较大的问题
答案:2 悬赏:50 手机版
解决时间 2021-01-27 03:23
- 提问者网友:最美的风景
- 2021-01-27 00:23
最佳答案
- 五星知识达人网友:逃夭
- 2021-01-27 01:24
用浮点型总会出现尾部极小数。。。如果知道自己的数据的有效位数就可以截取然后转换成整形来计算。。。
全部回答
- 1楼网友:旧脸谱
- 2021-01-27 02:42
const本身就是常量的意识,在定义的时候复值所以没有表明类型也没问题
但是如果没有const 你的double就必须要有.因为double表示的是定义的变量的类型为浮点型,编程语言里要装载小数就要用浮点型变量.
double的作用是声明变量的类型的.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯