gpt4 book ai didi

c#无限计算器,显示所有数字

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:29 27 4
gpt4 key购买 nike

我正在尝试创建一个计算器,其中有两个用于数字输入的文本框和最后一个显示数字的文本框。但是,我想让它在没有科学记数法的情况下至少达到 80 位(小数无关紧要)。有没有人对我如何实现这个有任何建议?

谢谢。

public void button1_Click(object sender, EventArgs e)
{

//Addition
**resultAdd = Convert.ToDouble(tb1.Text) ;**

tb2.Enabled = true;
calcFunc = "Add";


}



private void btnSubtract_Click(object sender, EventArgs e)
{
//subtract
resultSubtract = Convert.ToDouble(tb1.Text) + 0;
tb2.Enabled = true;
calcFunc = "Subtract";
}

public void btnEqual_Click(object sender, EventArgs e)
{

double totalResult;


switch (calcFunc)
{
case "Add":
totalResult = Convert.ToDouble(tb2.Text) + resultAdd;
total = tbTotal.Text.ToCharArray();
string x = Convert.ToString(totalResult);
tbTotal.Text = x;

// tbTotal.Text = x;
tbTotal.Enabled = true;

**totvalue = BigInteger.Parse(x);**

最佳答案

如果“小数无关紧要”是指您只处理整数,并且假设您使用的是 .NET 4 或更高版本,那么您应该使用 System.Numerics.BigInteger允许任意大的整数。

(您仍然需要完成所有 GUI 工作,但您可以使用 BigInteger 进行所有计算。)

显示 BigInteger 完全有能力处理大数的简短但完整的示例:

using System;
using System.Numerics;

class Test
{
static void Main()
{
string text = new string('1', 80);
BigInteger number = BigInteger.Parse(text);
Console.WriteLine(number);
}
}

编辑:好的,现在您已经发布了您的代码,很明显出了什么问题 - 您在这段代码中无缘无故地通过 double:

totalResult = Convert.ToDouble(tb2.Text) + resultAdd;
total = tbTotal.Text.ToCharArray();
string x = Convert.ToString(totalResult);
tbTotal.Text = x;
totvalue = BigInteger.Parse(x);

您不是在尝试处理 double 值 - 您是在尝试处理 integers 所以使用 BigInteger 做所有事情。也将 resultAdd 更改为 BigInteger,然后您只需要:

BigInteger result = BigInteger.Parse(tb2.Text) + resultAdd;

无需进行任何其他字符串转换。

关于c#无限计算器,显示所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com