避免圆整

时间:2011-04-20 08:10:21

标签: vb.net arraylist sum rounding

如何避免数字四舍五入

以下代码

Dim acc = 0
Dim i 
Dim x() = {699.68, 632.70}
  For i = LBound(x) To UBound(x)
    acc = acc + x(i)
  Next

  console.writeline(acc)

返回:1333

感谢 inchikka

2 个答案:

答案 0 :(得分:1)

acc被隐式定义为整数,因为你用0初始化它,这是一个整数。

您应该将acc显式定义为浮点数。我不确定VB语法,但我猜它是这样的:

Dim acc as Double

Dim acc = 0.0

答案 1 :(得分:1)

Ilya Kogan是正确的,问题是您没有明确定义变量。

唯一要补充的是,在VB中,使用Option Explicit语句是一个真的好主意,这需要定义变量。更好的是,您可以打开一个设置,在每个新项目中自动将其添加到您的代码中。我不确定你正在运行什么版本的VB,但这里是MSDN文章的链接,解释了如何启用此选项(取决于你的VB版本,点击页面顶部的“其他版本”)并根据说明选择你的选项):

MSDN Option Explicit

在运行VB6的情况下,序列有点不同(显然不是MSDN记录的)。转至:工具 - >选项和检查需要变量声明。