如何在vb.net中将小数点包含到字符串中?
如何在不将字符串转换为十进制的情况下向字符串添加小数点(带两位小数) 例如(将str1设置为字符串),不管str1的值是100、100.0、100.00还是100.5100.50。。。如何在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”。你必须弄清楚如何在
我想得到输出: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