Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 函数删除小数位_Vba_Math_Math Functions - Fatal编程技术网

Vba 函数删除小数位

Vba 函数删除小数位,vba,math,math-functions,Vba,Math,Math Functions,VBA中的JavaScriptMath.Floor()等价物是什么?。这个函数应该删除所有的小数位,只返回一个整数。我记得使用Int()函数。前 int(2.99) = 2 ; int(2.1)=2 等等。这是Round() 上面的0指定所需的小数位数 编辑: 阿尔比·帕托齐是对的。Math.Floor()的等价物是int()。我的印象是你只是想返回一个没有小数的数字。但后来我抬起头来 方法将数字向下舍入为最接近的整数,并返回结果 结果 ROUND()~~INT() 1~~0 0~~0 5 ~

VBA中的JavaScript
Math.Floor()
等价物是什么?。这个函数应该删除所有的小数位,只返回一个整数。

我记得使用Int()函数。前

int(2.99) = 2 ; int(2.1)=2
等等。

这是
Round()

上面的
0
指定所需的小数位数

编辑:

阿尔比·帕托齐是对的。
Math.Floor()
等价物是
int()
。我的印象是你只是想返回一个没有小数的数字。但后来我抬起头来

方法将数字向下舍入为最接近的整数,并返回结果

结果

ROUND()~~INT()

1~~0

0~~0

5 ~~ 5

5 ~~ 5

-5~~-6

-6~~-6

请注意,CInt()实际上会对数字进行四舍五入,而Int()则不会


也可以从VBA调用Excel工作表函数之一:

-
-对于正值,VBA提供的
Int()
Fix()
在功能上等同于
Math.floor()
。但是,对于负值,只有
Int()
在功能上等同于
Math.floor()
。如果您只想获取小数点左侧的值,那么VBA函数
Fix()
可能就是您想要的

数学地板(2.8)=2
Int(2.8)==2
固定值(2.8)==2

数学楼层(-2.8)=-3
Int(-2.8)=-3
固定(-2.8)=-2

Int,Fix函数

返回数字的整数部分

语法

整数(数字)

固定(数字)

必需的数字参数是双精度或任何有效数字 表情。若数字包含Null,则返回Null

评论

Int和Fix都删除数字的小数部分并返回 结果为整数值

Int和Fix的区别在于,如果数字为负数,Int 返回第一个小于或等于数字的负整数, 而Fix返回第一个大于或等于的负整数 数一数。例如,Int将-8.4转换为-9,Fix将-8.4转换为-8.4 到-8

修复(编号)相当于:

Sgn(编号)*Int(Abs(编号))


请记住,Int(-5.8)将给出-6,这可能不是您所期望的。我使用它来测试double是否是整数,如果x=Int(x),那么“integer end if
是否有更好的方法,而不必抛出错误?javascript中的Math.floor(-5.8)也给出了-6,因此这正是所要求的。但是如果你想要“真正的地板”,你可以通过按位运算或0(在javascript-5.8 | 0中)使-5.8给出-5,但我不知道它是否存在于VBA中,但如果它存在,它会给你-5Int()仍然舍入数字,例如Int(-1.6)=-2,只是为了让事情清楚,
CInt()
将数字舍入到最接近的整数,而
Int()
-∞
Sub Sample()
    Dim dval As Double
    dval = 1.12345

    Debug.Print Round(dval, 0)
End Sub
'~~> JavaScript floor() Method
'var a=Math.floor(0.60);    ~~> 0
'var b=Math.floor(0.40);    ~~> 0
'var c=Math.floor(5);       ~~> 5
'var d=Math.floor(5.1);     ~~> 5
'var e=Math.floor(-5.1);    ~~> -6
'var f=Math.floor(-5.9);    ~~> -6

Sub Sample()
    Dim dval(5) As Double, i As Long

    dval(0) = 0.6: dval(1) = 0.4: dval(2) = 5
    dval(3) = 5.1: dval(4) = -5.1: dval(5) = -5.9

    For i = LBound(dval) To UBound(dval)
        Debug.Print Round(dval(i), 0); " ~~ "; Int(dval(i))
    Next
End Sub
CInt(1.6) ~~ 2
Int(1.6) ~~ 1