如何将小数点(带两个小数位)添加到字符串,而不将字符串转换为十进制?
例如(Dim str1 as String),无论str1的值是多少:100,100.0,100.00或100.5,100.50 ...... 我想获得输出:100.00或100.50,小数点后两位。
答案 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