值对于小数来说太大或太小.c#

  • 本文关键字:于小数 小数 c#
  • 更新时间 :
  • 英文 :


我正在创建一个计算器,我遇到了一个问题,如果有人能帮助我,那将是非常感激的。

Ok,当到达calculatearea中的某个值时。文本,它崩溃的计算器与一个未处理的异常错误"系统。OverflowException:值对于小数来说太大或太小。"取值为"4.8828125000000004E+29"。但我希望它能像Windows计算器那样运行,直到出现"9.99999999999999999999999999999969e +9919";然后输入"溢出";当它到达+10000

代码→

private void calculateAera_TextChanged(object sender, EventArgs e)
{
if (calculateAera.Text == "" || calculateAera.Text == "0") return;
decimal number;
number = decimal.Parse(calculateAera.Text, System.Globalization.NumberStyles.Currency | System.Globalization.NumberStyles.AllowExponent);
calculateAera.Text = number.ToString("#,#");
calculateAera.SelectionStart = calculateAera.Text.Length;
}

如果您需要更大的范围,decimal根本不是适合您的工具。如果你想保持十进制的精度,c#并没有内置更大的东西。

你需要找一个不同的类型或者自己写。没有什么神奇的解决方案只取Calculator中使用的类型。计算器有它自己的原因。

最新更新