2017-03-24 39 views
2

我不明白什麼是錯的?我有一個小變量。計算後的十進制值

decimal Price = 22348/100;

我得到的答案是:223,但我應該得到223.48。問題是什麼?

+1

的[我怎麼可以把兩個整數取得雙?](可能的複製http://stackoverflow.com/questions/661028/how-can-i -divide-two-integer-to-get-a-double) – HimBromBeere

回答

11

你在做什麼,這是:

decimal = (decimal)(int/int); 

所以你計算整數(產生你得到的結果),然後將結果轉換爲十進制。

相反,你可以投兩個操作數爲十進制:

decimal Price = 22348/100M; 
+0

感謝您的超快速答案。 –

+1

對不起,如果這是一個愚蠢的問題,但「100」之後做了什麼? –

+1

@ JayF1 [「decimal」](http://stackoverflow.com/q/5333489/993547) –

1

聲明這些數字爲十進制變量然後把分歧導致其他小數變量。

decimal num1 = 22348; 
    decimal num2 = 100; 
    decimal Price = (num1/num2); 
    Console.WriteLine(Price); 

這會給結果223.48