我怎样才能得到带有十进制的电池温度?其实我可以如何用小数获得电池温度?
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
但这种方式的结果将是例如36 °C
计算的话..我想要的东西,告诉我36.4 °C
我该怎么办?
我怎样才能得到带有十进制的电池温度?其实我可以如何用小数获得电池温度?
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
但这种方式的结果将是例如36 °C
计算的话..我想要的东西,告诉我36.4 °C
我该怎么办?
谷歌表示here:
额外的ACTION_BATTERY_CHANGED:包含当前的电池温度整数。
返回的值是一个int值,例如,27.5℃代表“275”,所以它精确到十分之一摄氏度。只需10
施放此为float和鸿沟使用你的例子:
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
float tempTwo = ((float) temp)/10;
OR
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)/10;
您不必担心10因为INT只有一个操作数需要成为浮点数才能使结果成为一个操作数。
这是我知道你可以得到电池温度的唯一方法,并且总是一个整数。
根据文档:
公共静态最终字符串EXTRA_TEMPERATURE
额外的ACTION_BATTERY_CHANGED:整数包含当前电池 温度。
但是你可以用10.0f除以得到一位小数。
float ftemp = temp/10.0f;
感谢您的重播..有什么办法来转换整数?这个应用程序例如有小数https://lh4.ggpht.com/yoR8kC9GTLEyKbFFYKohbW1P8z1L00_wYJjKykAIqhhbVMAFxbwiA02s4m9aTSwxBQ=h900-rw –
是可能的做一些事情:'int i = 56472201; float e =((float)i)/1000000.0 double e = i/1000000.0;'? –
你知道温度是否始终以.0°结尾?如果是这样,你可以改变你的int像这样的一个浮点数:temp/10.0f –
public static String batteryTemperature(Context context)
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0))/10;
return String.valueOf(temp) + "*C";
}
类似'float temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)/ 10;'?准确地说是 –
。 android只是使用int来节省一些内存,因为电池通常不会超过43亿度。 –
看起来不错。随着你的解决方案的工作..但现在它卡住“35.0°C”..我试图等待,看看是否有变化 –