Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有人能告诉我如何格式化文本框的文本值吗_C#_Winforms - Fatal编程技术网

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-我很确定,直到我测试了它,然后我才这么确定:)-现在已经修好了