我正在使用Excel 2013.在以下代码片段中,VBA计算40 damage:
Dim attack As Variant, defense As Variant, damage As Long
attack = 152 * 0.784637
defense = 133 * 0.784637
damage = Int(0.5 * attack / defense * 70)
Run Code Online (Sandbox Code Playgroud)
如果数据类型更改为Double,则VBA计算39 damage:
Dim attack As Double, defense As Double, damage As Long
attack = 152 * 0.784637
defense = 133 * 0.784637
damage = Int(0.5 * attack / defense * 70)
Run Code Online (Sandbox Code Playgroud)
在调试器中,Variant/Double和Double值显示相同.但是,Variant/Double似乎更精确.
谁能解释这种行为?