1

これは非常に簡単に思えますが、明確な答えを見つけることはできません...

パーセンテージ(80、50など)を持つ文字列(ボリューム)があるとします。数値をDECIMAL形式で取得し、それを使用して電話を設定するボリュームを計算します。私はすでにmaxVolumeを取得しています...だから、私を殺している正しい値を取得しているだけです...

Integer theVolume=Integer.parseInt(volume);
double decimalNumber = theVolume/100;
int calc=(int) (maxVolume*decimalNumber);
mgr.setStreamVolume(AudioManager.STREAM_MUSIC,calc, 0);

decimalNumber は 0.0 としてのみ出力されます...どんな数値を指定しても...?

4

2 に答える 2

5

次のようにしてみてください。

double decimalNumber = theVolume / 100.0;

最後の.0はそれを 10 進数に変換します。

編集:参考までに、Javaは2つの整数を除算しようとするため(100を使用する場合)、結果を整数として出力しようとするため、このように動作します。結果は分数であるため、Java はデフォルトでその分数に最も近い整数 (この場合は 0) に切り捨ててから、その整数値を double に割り当てます。代わりに 100.0 を使用することで、整数を double で割るように Java に指示することになります。

于 2013-07-26T19:44:43.973 に答える