我有一些我想改变的格式的数字
121.23
12312
1.123
1234.5
如何强制他们使用12.123的格式,因此它总是在第二个数字之后有一个点。
答案 0 :(得分:1)
这不是字符串格式操作。您需要将数字乘以或除以10,直到它小于100或大于或等于10.例如:
Function Transform(ByVal toTransform As Decimal) As Decimal
Transform = toTransform
If (Transform >= 100) Then
Do While Transform >= 100
Transform /= 10
Loop
ElseIf (Transform < 10) Then
Do While Transform < 10
Transform *= 10
Loop
End If
End If
或者这是一个更通用的版本,因此您可以使用它来获取任意数量的小数位:
Function Transform(ByVal toTransform As Decimal, ByVal numberOfPlaces As Integer) As Decimal
Transform = toTransform
Dim min = 10 ^ (numberOfPlaces - 1)
Dim max = 10 ^ numberOfPlaces
If (Transform >= max) Then
Do While Transform >= max
Transform /= 10
Loop
ElseIf (Transform < min) Then
Do While Transform < min
Transform *= 10
Loop
End If
End Function
基本上,它将数字乘以或除以10,从而在所需方向上移动小数点。它会这样做,直到结果小于或等于该范围内的最大值并且大于或等于该范围内的最小值。