我是相當新的編程,並且最近重新使用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