Vba 函数删除小数位
VBA中的JavaScriptVba 函数删除小数位,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 ~
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