0

あまりにも頻繁に、次のようなものを書いていることに気づきました。

int part = 7;
int whole = 10;
...

int percentage = (int) (100.0 * (double) part/ (double) whole);

(変数の元の型を実際に変更せずに)キャストの数を最小限に抑える方法はありますか?

4

3 に答える 3

5

問題のコードは次と同等です。

int percentage = (int) (100.0 * part/ whole);

double 引数の算術演算は double の結果を返すためpartwhole自動的に double に変換されます

于 2013-02-28T12:34:57.060 に答える
2

問題のコードは次と同等です。

int percentage = 100 * part / whole;

double から int へのキャスト変換と整数除算がどのように機能するかのおかげで、浮動小数点演算はまったくありません。(最終的に小数部を捨てているのなら、わざわざ計算する必要はありません。)

于 2013-02-28T15:57:46.457 に答える
1

キャストする必要はありません。操作で自動的にキャストされ100.0*part/whole、 double 値が得られます。整数で一度キャストするだけで、最終値になります

int percentage = (int) (100.0 * part/ whole);
于 2013-02-28T12:36:09.770 に答える