2017-07-11 9 views
0

結果をfloat、double、decimalに格納すると除算後、結果は0になります。どのように格納できますか?10進数で数値を格納する0

decimal days = 0.00m; 
days= 110/480; 

実際の結果は0.2291666666666667ですが、可変日数は0になります。私はデータ型float、double &小数を試しています。

+0

try days = 110.0/480; –

答えて

1

これはあなたに正しい結果得られます:

decimal days = 0.00m; 
days= 110m/480m; 

説明:あなたは、小数点として日を定義してきたように、小数点値「M」を表現するためには、値が計算に使用される、

110 is Int32 
110m is Decimal 

を末尾にまた小数でなければなりません。これが価値表現を理解するのに役立つことを願っています。

@dumetruloで指摘されているように、11& 480は整数です。整数除算後の結果は110/480です。この結果は暗黙的に10進数にキャストされ、0のままです。

+0

明確にするために: '' 110/480''は結果の0の整数除算です。この結果は暗黙のうちに10進数にキャストされ、0のままになります。 – dumetrulo

+0

あなたはそこにあります、私はそれをソリューションに追加しています –

関連する問題