0

如何在不将字符串转换为小数的情况下将小数点(带两位小数)添加到字符串?

例如(Dim str1 as String),无论 str1 具有值:100、100.0、100.00 或 100.5、100.50... 我想得到输出:100.00 或 100.50,带两位小数。

4

3 回答 3

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);
    }
}

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

于 2012-01-17T13:27:48.320 回答
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
于 2012-01-17T13:29:57.913 回答
0

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

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

走简单的路线。

于 2012-01-17T13:27:42.690 回答