私は2つの整数値xとtotalを持っています。私はxの合計を整数で求めようとしています。これは私が今やっているところです:Java:整数のパーセンテージを取得しようとすると、どのように丸めますか?
パーセント=(int)((x * 100)/ total);
パーセントは整数でなければなりません。私がこれをするとき、常に小数点を丸めます。パーセントを整数として計算する簡単な方法はありますか?小数点が.5以上の場合は切り上げますか?
私は2つの整数値xとtotalを持っています。私はxの合計を整数で求めようとしています。これは私が今やっているところです:Java:整数のパーセンテージを取得しようとすると、どのように丸めますか?
パーセント=(int)((x * 100)/ total);
パーセントは整数でなければなりません。私がこれをするとき、常に小数点を丸めます。パーセントを整数として計算する簡単な方法はありますか?小数点が.5以上の場合は切り上げますか?
Math.round(x * 100.0/total)
を使用してください。しかし、これは長いので、int
へのシンプルなキャストが必要になることに注意してください。
丸め前に浮動小数点演算を使用するように100.0を強制します。
理由だけではなく、Javaの標準数学ライブラリを使用しMath.round(100.0/total * x);
+1の前にあったので、 –
この答えは、 'x'と' total'が両方とも整数なので問題を解決しません。この式は整数演算を使用して評価され、ラウンド関数に渡される前に「丸め」されます。 – joshuahealy
を使用していません。
percentage = Math.round(*your expression here*);
を使用Math.round((x*100)/total);
(int)Math.round(100.0/total * x);
動作するはずです。
あなたは正の値(infitityにラウンド)
percentage = (int)(x * 100.0/total + 0.5);
これは恐らくMath.roundを使用するよりも高速です
が、おそらくとして明確ではないために0.5を追加することができます。
BTW:100.0/total * x
は、評価の順序が浮動小数点の結果を変更する可能性があるため、x * 100.0/total
と同じ結果が得られない場合があります。
最も簡単な方法は -
質問10進数の値を切り上げする方法(例:int型のn = 4.57)
回答:恐らくMath.round(N);
出力:5。
質問には部分的にしか答えません。あなたは完全な答えを形作るために精緻化することができますか? –
これも正しくありません。質問をより慎重に読んで、それに正しく答える多くの既存の回答をチェックしてください。 –
intを返すオーバーロードされたメソッドがあります。だからキャストは絶対に必要なわけではありません。 –
@DhariniChandrasekaran浮動小数点数を渡すとintが返されると思いますか?私がそれを書いたやり方では、それは二重に渡り、長く戻るでしょう。 – joshuahealy
@Churk実際には、x、100、totalがすべてintなので、私の答えは編集されているので、算術演算はすべて整数になり、roundへの呼び出しは時間の無駄でした。浮動小数点演算を使用するように100.0に変更し、その説明を追加しました。 – joshuahealy