将百分比转换为小数?...用于音量控制

时间:2013-07-26 19:43:25

标签: java android

这似乎很容易,但我无法找到明确的答案......

假设我有一个字符串(音量)有一个百分比...(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 ...无论我给它的数字是什么......?

2 个答案:

答案 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);