如何在 VB6 中截断到特定的小数位数?

How to truncate to a specific number of decimals in VB6?

如何在 VB6 中将数字截断到特定的小数位数?

truncatedNumber = Fix ( originalNumber * 100 ) / 100 'Truncate to 2 decimals.
truncatedNumber = Fix ( originalNumber * 1000 ) / 1000 'Truncate to 3 decimals.
truncatedNumber = Fix ( originalNumber * 10000 ) / 10000 'Truncate to 4 decimals.

Fix() returns 数字的整数部分。

示例 01:将 3.1415 截断为两位小数。

  • 3.1415 x 100 等于 314.15
  • 修复(314.15) returns 314
  • 314 / 100 等于 3.14

示例 02:将 3.1415 截断为 3 位小数。

  • 3.1415 x 1000 等于 3141.5
  • 修复(3141.5) returns 3141
  • 3141 / 1000 等于 3.141

编辑: 正如 Complise 和 Bruno 所指出的,Int 不会正确截断负数。 Int 将-8.4 转换为-9,Fix 将-8.4 转换为-8。所以 Fix 是必经之路。

我会使用格式:

Dim d as Double
d = CDbl(Format("123.22323263",".0000"))

我会使用 fix() 而不是 int(),以便不改变负数并且不像 format() 那样四舍五入

?整数(-8.666*100)/100 , 修正(-8.666*100)/100

-8.67 -8.66

我同意上面的 Complise:如果目标是截断,Fix 是比 Int 更好的选择

Function TrimDigits(val As Double, Optional numdig As Integer = 2) As Double
Try
    Return Fix(val * 10 ^ numdig) / 10 ^ numdig
Catch ex As Exception
    Return 0
End Try

结束函数