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

syk*_*kal 2 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);
Run Code Online (Sandbox Code Playgroud)

DecimalNumber 只能显示为 0.0...无论我给它什么数字...?

tre*_*r-e 6

尝试这样做:

double decimalNumber = theVolume / 100.0;
Run Code Online (Sandbox Code Playgroud)

最后的.0会将其转换为十进制数。

编辑:作为参考,它的行为是这样的,因为 Java 试图除以两个整数(当使用 100 时),因此它尝试将结果输出为整数。结果是一个分数,因此 Java 默认将其向下舍入为最接近该分数的整数(在本例中为 0),然后将该整数值分配给您的 double。通过使用 100.0,您可以告诉 Java 将整数除以 double,然后 Java 知道它可以保留分数结果而不是向下舍入。