Math.Floor()
VBA中的 JavaScript 等价物是什么?此函数应删除所有小数位并仅返回一个整数。
5 回答
我记得使用 Int() 函数。前任
int(2.99) = 2 ; int(2.1)=2
等等。
请注意 CInt() 实际上会舍入数字,但 Int() 不会。
CInt(1.6) ~~ 2
Int(1.6) ~~ 1
它是Round()
Sub Sample()
Dim dval As Double
dval = 1.12345
Debug.Print Round(dval, 0)
End Sub
0
上面指定了你想要的小数位数。
编辑:
阿尔比帕托齐是对的。的是。equivalent
_ 我的印象是您只想返回一个不带小数的数字。但后来我查了http://www.w3schools.com/jsref/jsref_floor.aspMath.Floor()
int()
floor() 方法将数字向下舍入到最接近的整数,并返回结果。
'~~> 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
结果
ROUND() ~~ INT()
1 ~~ 0
0 ~~ 0
5~5
5~5
-5 ~~ -6
-6 ~~ -6
您还可以从 VBA 调用 Excel 工作表函数之一:
-Application.WorksheetFunction.Floor_Math
-Application.WorksheetFunction.Floor
对于正值,VBA 提供Int()
并且Fix()
在功能上等同于Math.floor()
. 但是,对于负值, onlyInt()
在功能上等价于Math.floor()
。Fix()
如果您只对获取小数点左侧的值感兴趣,那么VBA 函数可能就是您想要的。
Math.floor(2.8) == 2
Int(2.8) == 2
Fix(2.8) == 2
Math.floor(-2.8) == -3
Int(-2.8) == -3
Fix(-2.8) == -2
整数,修复函数
返回数字的整数部分。
句法
整数(数字)
修复(数量)
所需的 number 参数是 Double 或任何有效的数字表达式。如果 number 包含 Null,则返回 Null。
评论
Int 和 Fix 都删除了 number 的小数部分并返回结果整数值。
Int 和 Fix 的区别在于,如果 number 为负数,Int 返回第一个小于或等于 number 的负整数,而 Fix 返回第一个大于或等于 number 的负整数。例如,Int 将 -8.4 转换为 -9,Fix 将 -8.4 转换为 -8。
Fix(number) 等价于:
Sgn(数字) * Int(绝对值(数字))