我对编程相当陌生,最近使用 C#(winforms)重新制作了微软的“标准”计算器,但想问一个关于微软在他们的“标准计算器”中使用的变量类型的问题。
为了确定使用的变量类型,我在微软标准计算器中输入了一个计算:
88888888/9(八个 8)。
结果为:9876543.111111111(小数点后 9 位)
然后,我创建了一个简单的 C# 控制台应用程序,该应用程序除以 2 个数字。
我首先使用“int”类型,如预期的那样,结果是 9876543。然后我使用“double”类型并且非常接近,结果是 9876543.11111111(8 位小数)我使用十进制和输出(再次,正如预期的那样) 有太多的小数位!我使用了float,输出与int类型(9876543)的输出相同。
float a = 88888888F;
float b = 9F;
float c = 0F;
Console.WriteLine("a / b is: {0}", c = a / b);
Console.ReadLine();
根据以上信息,我会说微软使用类型“double”,因为它在小数位方面最接近。
但是.. 我不确定我是否在浮点类型的代码中做错了什么。(如果上面的代码有问题,你们能告诉我吗?我故意将casted float 输入为float,以防万一,但最初并没有,最后仍然得到相同的结果)
我已经尝试了此链接以获取有关浮点类型的一些信息,但并没有太大帮助:http: //msdn.microsoft.com/en-gb/library/b1e65aza (v=vs.100).aspx
然后我尝试了 C++,得到了类似的结果。
float a = 88888888;
float b = 9;
float c = a / b;
cout << c;
double aa = 88888888;
double bb = 9;
double cc = aa / bb;
cout << cc;
如果我遗漏了一些非常明显的东西,请原谅我!最好的答案是告诉我微软在他们的标准计算器中使用什么变量类型,并提供某种形式的证据来支持这一点。另外,如果我在上面的代码中犯了任何错误,我们将不胜感激。