vb 如gc_d(i + 1, 1) = C_Da(i, 0) * (1 + Al_Da(3) / 100#)中“100#”是什么意思?谢谢

 我来答
网海1书生
科技发烧友

2014-05-23 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12315 获赞数:26240

向TA提问 私信TA
展开全部
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这个数字后面添加类型定义符,两个数中只要有一个被定义即可
然后去远足
2014-05-23 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2620万
展开全部
谢邀。

数据类型 类型符
Integer %
Long &
Single !
Double #
Currency @
String $

加上类型符是让100作为一个浮点数,而非整数来参与运算,从而保证结果的精度。
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smssj_82
2014-05-23
知道答主
回答量:31
采纳率:0%
帮助的人:15.5万
展开全部
说明这个100是双精度的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式