
vb 如gc_d(i + 1, 1) = C_Da(i, 0) * (1 + Al_Da(3) / 100#)中“100#”是什么意思?谢谢
3个回答
展开全部
100#是告诉VB这个100是个双精度浮点数(Double),而不是默认的整数(Integer)。这样做的目的是为了防止出现计算结果“溢出”的错误。
这是因为当VB在进行多个整数之间的四则运算时,如果参与运算的所有整数都小于32767且大于-32768(换句话说就是没有超出Integer的范围),那么VB会默认以Integer作为运算结果的类型,这样的话,一旦运算结果超出Integer的范围就会发生“溢出”错误了。
比如:
Print 400 * 100
这个你想象中会觉得很简单是吧?但是在VB中运行它偏偏就出错了,因为运算结果40000已经大于32767了!
而改成下面这样就不会出错了:
Print 400 * 100& '强制VB按长整数(Long)来储存运算结果
或
Print 400 * 100! '强制VB按单精度浮点数(Single)来储存运算结果
或
Print 400 * 100# '强制VB按双精度浮点数(Double)来储存运算结果
或
Print 400 * 100@ '强制VB按货币型(Currency)来储存运算结果
当然,也可以在400这个数字后面添加类型定义符,两个数中只要有一个被定义即可
这是因为当VB在进行多个整数之间的四则运算时,如果参与运算的所有整数都小于32767且大于-32768(换句话说就是没有超出Integer的范围),那么VB会默认以Integer作为运算结果的类型,这样的话,一旦运算结果超出Integer的范围就会发生“溢出”错误了。
比如:
Print 400 * 100
这个你想象中会觉得很简单是吧?但是在VB中运行它偏偏就出错了,因为运算结果40000已经大于32767了!
而改成下面这样就不会出错了:
Print 400 * 100& '强制VB按长整数(Long)来储存运算结果
或
Print 400 * 100! '强制VB按单精度浮点数(Single)来储存运算结果
或
Print 400 * 100# '强制VB按双精度浮点数(Double)来储存运算结果
或
Print 400 * 100@ '强制VB按货币型(Currency)来储存运算结果
当然,也可以在400这个数字后面添加类型定义符,两个数中只要有一个被定义即可
展开全部
谢邀。
数据类型 类型符
Integer %
Long &
Single !
Double #
Currency @
String $
加上类型符是让100作为一个浮点数,而非整数来参与运算,从而保证结果的精度。
数据类型 类型符
Integer %
Long &
Single !
Double #
Currency @
String $
加上类型符是让100作为一个浮点数,而非整数来参与运算,从而保证结果的精度。
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询