2013-04-24 83 views
-2

我想在計算後得到我的int的逗號數,但我似乎無法讓它工作。用小數計算

我的代碼:

int price = 120; 
decimal calc = price/100; 

但它只返回1

+1

鴻溝價格由百米 – 2013-04-24 09:32:51

回答

4
int price = 120; 
decimal calc = price/100m; 

你的變種:

int price = 120; 
int temp = price/100;// temp = 1 
decimal calc = (decimal) temp; 
1

您canculation在整數類型正在做的兩個操作數是整數。它應該是:

decimal calc = price/100M; 
        // ^^^^^ 
        //atleast one of the operand should be decimal 

或者

decimal calc = (decimal)price/100; 
2
int price = 120; 
decimal calc = ((decimal)price)/100; 
0

當您通過另一個整數除以整數,結果始終是一個整數。由於您希望以更精確的方式得到答案,因此需要根據所需的精度對其進行類型化。十進制在C#中爲您提供了最佳的精度。但是,即使投射成浮法或雙重也會讓你以你期望的格式回答。再次施放取決於所需的準確度水平。 Here來自MSDN的更詳細的解釋。

0

最簡單的方法就是聲明price爲十進制也

decimal price=120; 
decimal calc=price/100; 

如果是從一個參數或另一個局部變量,你仍然可以將其存儲在像十進制:

int priceInInt=120; 
decimal price=priceInInt; 
decimal calc=price/100;