如何在不将字符串转换为小数的情况下将小数点(带两位小数)添加到字符串?
例如(Dim str1 as String),无论 str1 具有值:100、100.0、100.00 或 100.5、100.50... 我想得到输出:100.00 或 100.50,带两位小数。
如何在不将字符串转换为小数的情况下将小数点(带两位小数)添加到字符串?
例如(Dim str1 as String),无论 str1 具有值:100、100.0、100.00 或 100.5、100.50... 我想得到输出:100.00 或 100.50,带两位小数。
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);
}
}
但是,请注意多余的小数将被截断 - 不会发生四舍五入!
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
暂时无法添加评论,所以请原谅额外的帖子......
lthibodeaux 和 dierre 是正确的。转换为十进制并返回要好得多。否则,您可以创建一个函数,在字符串中查找小数点,然后根据找到它的位置向其附加零。问题是如果你得到一个像“13.876”这样的str。您必须弄清楚如何对字符串进行舍入。
走简单的路线。