Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# - Fatal编程技术网

c#计算器设计变更?

c#计算器设计变更?,c#,C#,你好,我是一个业余程序员,我想做一个计算器。我有一个按钮,可以更改文本框中某个值的前符号。 我的逻辑是: textBox1.Text = (double.Parse(textBox1.Text) * (-1)).ToString(); 问题是,当按下按钮时,符号会改变,但“-”符号会放在值的末尾。 是否可以通过for循环来实现这一点 这是我的计算器: 您可以使用withSystem.Globalization.NumberFormatInfo.InvariantInfo的重载或所需的格式,强制

你好,我是一个业余程序员,我想做一个计算器。我有一个按钮,可以更改文本框中某个值的前符号。 我的逻辑是:

textBox1.Text = (double.Parse(textBox1.Text) * (-1)).ToString();
问题是,当按下按钮时,符号会改变,但“-”符号会放在值的末尾。 是否可以通过
for
循环来实现这一点

这是我的计算器:

您可以使用with
System.Globalization.NumberFormatInfo.InvariantInfo
的重载或所需的格式,强制负号出现在开头:

double d;
if (double.TryParse(textBox1.Text, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out d))
{
    d = -d;
    textBox1.Text = d.ToString(NumberFormatInfo.InvariantInfo);
}

你所在的地区是什么?某些区域设置将在末尾显示它。您的系统区域设置是否可能在数字末尾使用负号格式化数字?如果是这样,那么
ToString
方法在将负数转换为字符串时将尊重这一点。textBox1.Text=“-”+textBox1.Text try?try
ToString(CultureInfo.InvariantCulture)
没有ToString(CultureInfo.InvariantCulture),您不也需要用该区域性解析它吗,否则,单击该按钮两次可能会有问题。@VigiMenyhártGyula:对不起,会发生什么情况?会给我错误消息,当前上下文中不存在数字样式,等等。@VigiMenyhártGyula:它位于同一命名空间中。只需使用System.Globalization将
添加到代码文件的顶部即可。我添加了您的代码,仍然会发生与我相同的事情