使用特定的数字格式字符串

时间:2014-06-02 14:48:42

标签: vb.net

我有一些我想改变的格式的数字

121.23
12312
1.123
1234.5

如何强制他们使用12.123的格式,因此它总是在第二个数字之后有一个点。

1 个答案:

答案 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,从而在所需方向上移动小数点。它会这样做,直到结果小于或等于该范围内的最大值并且大于或等于该范围内的最小值。