小编Nig*_*ens的帖子

为什么Excel VBA舍入我的整数除法结果?

我正在Excel 2002中编写一个VBA宏来处理来自设备的日期,该设备在4个通道中的每一个上提供10个值.

当我尝试将整数除以另一个整数来计算行和列时,结果表明它正在使用银行家舍入,就好像它是一个浮点变量.

Sub TestRounding()
    Dim Y As Integer
    Dim Field As Integer
    Dim Channel As Integer

    ActiveWorkbook.Sheets.Add
    ActiveWorkbook.ActiveSheet.Cells.Select
    range("A1").Select

    For Field = 1 To 40
        Channel = (Field - 1) / 10
        Y = Field - 1
        ActiveSheet.range("A1").Offset(Y, Channel).Value = Field
    Next Field

End Sub
Run Code Online (Sandbox Code Playgroud)

Y是输出的行,我通常设置它

Y = (Field -1) mod 10
Run Code Online (Sandbox Code Playgroud)

但是我把它留了下来

Y = Field - 1
Run Code Online (Sandbox Code Playgroud)

在结果工作表中更清楚地说明这一点.

通道应该是输出的列.

当我运行这个宏时,值1-6被放入A列,然后7-15被放入B列,16-26被放入C列,然后是D列27-35,E列36-40 .

我的预期是1-10值进入A列,11-20进入B列,21-30进入C列,31-40进入D列.

我习惯于C和C++,如果我将整数除以另一个整数,则使用整数数学计算结果.VBA有什么不同?

excel vba excel-vba

4
推荐指数
1
解决办法
9213
查看次数

为什么我不能在 C++ Builder 中编译 IsNan

我正在使用 C++ Builder XE 并想检查浮点值是否有效。根据帮助,在math.h中,有一个调用

bool IsNan(float value)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译它时,它告诉我

Call to undefined function 'IsNan'
Run Code Online (Sandbox Code Playgroud)

查看 math.h,没有 isnan 这样的东西(我使用了不区分大小写的搜索)

我是在做傻事还是什么?

c++ math c++builder

1
推荐指数
1
解决办法
1136
查看次数

标签 统计

c++ ×1

c++builder ×1

excel ×1

excel-vba ×1

math ×1

vba ×1