我是相当新的编程,并且最近重新使用C#(winforms)微软“标准”计算器,但想问一个关于微软在其“标准计算器”中使用的变量类型的问题, 。微软标准计算器中使用的变量类型
要确定所使用的变量的类型,我在Microsoft标准计算器输入的计算:
9分之88888888(8个8的)。
其结果是:9876543.111111111(9位小数)
我然后创建划分2个号码一个简单的C#控制台应用程序。
我第一次使用了“INT”类型,如预期,结果是9876543. 然后我用“双”型,来到比较接近,其结果是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();
从上面的信息,我会说微软使用类型“双”,因为这是最接近的小数位数。
但是..我不知道如果我在我的浮点类型的代码中做了错误。 (你们可以让我知道如果上面的代码是错误的吗?我故意键入流延浮动浮动,以防万一,但最初没有,并在结尾仍然得到相同的结果)
我试过这个链接关于浮点类型的一些信息,但并没有真正的帮助: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;
请原谅我,如果我失去了一些疯狂明显的东西!最好的答案是告诉我微软使用哪种变量类型作为他们的标准计算器,并提供某种形式的证据来支持它。此外,如果我在上面的代码中发现了任何错误,我将不胜感激。
嘿,谢谢你,我不想手动告诉我的计算器从结果中切断多少个小数位。我只是想知道为什么微软计算器给了我一个答案,该公式为9位小数,为什么我的C#代码给了我8位小数。 – Zak
@Zak - 我已经更新了我的答案。这可能解释结果的差异。 – keyboardP
嘿,这很有道理!非常感谢!!当我开始编写这个计算器时,我认为这将是一块蛋糕,但实际上它比我想象的复杂得多! – Zak