C# 有人能告诉我如何格式化文本框的文本值吗
大家好,我正在做一个程序,以四舍五入文本框中输入的文本。样本输入C# 有人能告诉我如何格式化文本框的文本值吗,c#,winforms,C#,Winforms,大家好,我正在做一个程序,以四舍五入文本框中输入的文本。样本输入 Entered value output value 100 100.00 50 50.00 像这样,我想格式化textBox1\u Leave事件上的文本框值 我试过了,但没用 private void textBox1_Leave(object sender, EventArgs e) { string str = string.For
Entered value output value
100 100.00
50 50.00
像这样,我想格式化textBox1\u Leave
事件上的文本框值
我试过了,但没用
private void textBox1_Leave(object sender, EventArgs e)
{
string str = string.Format(textBox1.Text, "##.00");
textBox1.Text = str;
}
有人能帮我吗?你需要把这个字符串转换成一个数字,然后再打电话。另外,您使用的格式不正确。你需要像这样使用占位符
string str = String.Format("{0:F2}", Double.Parse(textBox1.Text));
textBox1.Text = str;
如果您输入非数字输入,自然会呕吐。为此,您可以进行一些基本的验证
double d = 0;
textBox1.Text =
Double.TryParse(textBox1.Text, out d) ? String.Format("{0:F2}", d) : "0";
问题是您的文本框值已经是一个字符串。试试这个:
private void textBox1_Leave(object sender, EventArgs e)
{
var input = Convert.ToDouble(textbox1.Text);
textBox1.Text = input.Tostring("#.00");
}
注意:如果输入不是数字,您需要在转换时捕获格式异常。首先,您的示例并不真正显示舍入。你说“它对我不起作用”是什么意思?你说“不起作用”是什么意思?我没有得到预期的结果所以,你得到了什么?错误?其他输出?我给出的任何输入都是相同的,您确定可以这样调用字符串()吗?文本是stype字符串,ToString现在只接受Formatprovider。我认为您必须转换为Double或其他类型,才能有一个接受formatstring@rene-我很确定,直到我测试了它,然后我才这么确定:)-现在已经修好了