这似乎很容易,但我无法找到明确的答案......
假设我有一个字符串(音量)有一个百分比...(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 ...无论我给它的数字是什么......?
答案 0 :(得分:4)
尝试这样做:
double decimalNumber = theVolume / 100.0;
最后的.0
将其转换为十进制数。
编辑:作为参考,它的行为与此类似,因为Java试图划分两个整数(当使用100时),因此它尝试将结果输出为整数。结果是一小部分,因此Java默认将其舍入为该分数的最接近整数(在本例中为0),然后将该整数值分配给您的double。相反,使用100.0,您告诉Java将整数除以double,然后知道它可以保持分数结果而不是向下舍入。
答案 1 :(得分:0)
将音量解析为双
double theVolume=Double.parseDouble(volume);
double decimalNumber = theVolume/100;
int calc=(int) (maxVolume*decimalNumber);
mgr.setStreamVolume(AudioManager.STREAM_MUSIC,calc, 0);