2011-12-15 12 views
3

私は与えられた数の比率を利用し、その比率に別の数を掛ける必要があるアプリを開発中です。問題は、私に適切な小数点の割合を与えるために1よりも少ない数を得ることができないということです。代わりに、それは私にゼロを与えます(.5にする必要があります)。1未満の数字を返す

例:

float number = 1/2; // This gives me zero 
double number = 1/2; // This also gives me zero 

答えて

4

この

float number = 1.0/2.0; 

1intであることに注意してください試してみてください、あなたは、本質的に

(int)0 

を返し

(int)1/(int)2 

取っています彼らは実際に変数をint型ている場合intのある変数を、キャストするに

float number = (float)numerator/(float)denominator; 
+0

だから、どのように私は彼らがこの(1.0)のように浮かぶように変換するんですか?したがって、float number = currentInt/previousInt; –

+0

@JakeSankey上記を参照してください。 – PengOne

+0

ありがとう!完璧に働いた! –

6

あなたは結果がLHSの型にキャストされる前に、整数精度で行われ、計算を意味する整数を使用している小数点以下の桁を指定しない場合。

float number = 1.0f/2.0f; 
double number = 1.0/2.0; 

あなたは、操作のための整数変数を使用することを目指している場合、あなたはあなたが欲しいタイプにそれらをキャストしたいと思う:あなたは、あなたのコード内にハードコーディングされた番号を使用する場合は、次の操作を行いたいですあなたの結果。

関連する問題