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

如何在vb.net中将小数点包含到字符串中?,vb.net,decimal,decimal-point,Vb.net,Decimal,Decimal Point,如何在不将字符串转换为十进制的情况下向字符串添加小数点(带两位小数) 例如(将str1设置为字符串),不管str1的值是100、100.0、100.00还是100.5100.50。。。 我想得到输出:100.00或100.50,小数点后两位。还不能添加注释,请原谅额外的帖子 lthibodeaux和dierre是正确的。将其转换为十进制并返回要好得多。否则,您可以创建一个函数,在字符串中查找小数点,然后根据找到小数点的位置向其追加零。问题是如果你得到的str像“13.876”。你必须弄清楚如何在

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

例如(将str1设置为字符串),不管str1的值是100、100.0、100.00还是100.5100.50。。。
我想得到输出:100.00或100.50,小数点后两位。

还不能添加注释,请原谅额外的帖子

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

走简单的路线

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#标记:

公共字符串格式编号(字符串s)
{
int pos=s.IndexOf('.');
如果(pos==-1){//没有小数点
返回s+“.00”;
}否则{
返回(s+“00”)。子字符串(0,位置+3);
}
}

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

CDec(myString)。ToString(“D2”)
并没有让你望而却步。只需强制转换并调用
ToString
。我不知道vb,但在c中#将其转换为十进制,四舍五入,然后转换回我用
CDec(myString)尝试过的字符串。ToString(“D2”)
,但我得到了异常错误:ex.Message=“格式说明符无效”。这是我的代码:
Dim str1 As string=“100.0”
将str2设置为字符串
str2=CDec(str1)。ToString(“D2”)
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