如何在vb.net中包含小数点到字符串?

时间:2012-01-17 13:18:59

标签: vb.net decimal decimal-point

如何将小数点(带两个小数位)添加到字符串,而不将字符串转换为十进制?

例如(Dim str1 as String),无论str1的值是多少:100,100.0,100.00或100.5,100.50 ...... 我想获得输出:100.00或100.50,小数点后两位。

3 个答案:

答案 0 :(得分:1)

Public Function FormatNumber(ByVal s As String) As String
    Dim pos As Integer = s.IndexOf("."c)
    If pos = -1 Then ' No decimal point
        Return s & ".00"
    Else
        Return (s & "00").Substring(0, pos + 3)
    End If
End Function

因为你插入了一个C#标签:

public string FormatNumber(string s)
{
    int pos = s.IndexOf('.');
    if (pos == -1) { // No decimal point 
        return s + ".00";
    } else {
        return (s + "00").Substring(0, pos + 3);
    }
}

但请注意,多余的小数将被截断 - 不会发生舍入!

答案 1 :(得分:0)

无法添加评论,请原谅额外的帖子......

lthibodeaux和dierre是正确的。转换为十进制和后退要好得多。否则,您可以创建一个函数,在字符串中查找小数点,然后根据它找到的位置为其添加零。问题是如果你得到像“13.876”这样的str。你必须弄清楚如何对字符串进行舍入。

走简单路线。

答案 2 :(得分:0)

Public Shared Function TwoDecimalString(input As String) As String
    Dim output As String
    Dim splittedInput As String() = input.Split("."C)
    If splittedInput.Length = 1 Then
        output = input & ".00"
    Else
        output = splittedInput(0) & "." & splittedInput(1).PadRight(2, "0"C)
    End If
    Return output
End Function