You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA中Long类型相除存为整数:如何让Rate保留实际计算值?

解决VBA中Rate变量存储整数近似值的问题

问题根源在于Rate被声明为Long(长整型),VBA会自动将除法运算得到的浮点值(0.9)取整为整数,所以最终存储的是1而非实际计算值。

要让Rate存储精确的浮点结果,有两种核心修改方式:

1. 修改变量声明为浮点类型

将Rate的类型从Long改为浮点型(推荐用Double,精度更高;也可以用Single,占用内存更少),这样变量本身就能直接存储小数:

修改后的完整代码:

Dim Start As Long
Dim Final As Long
Dim Rate As Double ' 替换Long为Double

Start = 10
Final = 9
Rate = Final / Start

MsgBox("Rate Variable = " + CStr(Rate) + "; Actual Calculation = " + CStr(Final / Start))

运行后MsgBox会显示:

Rate Variable = 0.9; Actual Calculation = 0.9

2. 赋值时强制转换为浮点型(不推荐,仅作补充)

如果暂时不想修改变量声明(不建议,因为Long本质还是只能存整数,强制转换后仍会丢失精度),可以在赋值时用CDbl()函数将运算结果转为双精度浮点后再赋值:

Rate = CDbl(Final / Start)

但这种方式只是临时转换,Rate作为Long类型最终还是会取整,所以优先推荐第一种修改变量类型的方案。

内容的提问来源于stack exchange,提问作者thnkwthprtls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:00:56