in meiner app ich berechne die CPU-Auslastung und ich bekomme das Ergebnis in%, aber manchmal ist das Ergebnis zu groß 20.234234234234 Meine Frage ist, wie kann ich die Ergebnisnummern nach dem "."
Und kann ich dies tun, ohne Float in Ganzzahl zu ändern?Wie Dezimalstellen aus einem Float-Ergebnis zu entfernen?
Hier ist mein Code:
private float readCpuUsage() {
try {
RandomAccessFile reader = new RandomAccessFile("/proc/stat", "r");
String load = reader.readLine();
String[] toks = load.split(" ");
long idle1 = Long.parseLong(toks[5]);
long cpu1 = Long.parseLong(toks[2]) + Long.parseLong(toks[3])
+ Long.parseLong(toks[4]) + Long.parseLong(toks[6])
+ Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
try {
Thread.sleep(360);
} catch (Exception e) {
}
reader.seek(0);
load = reader.readLine();
reader.close();
toks = load.split(" ");
long idle2 = Long.parseLong(toks[5]);
long cpu2 = Long.parseLong(toks[2]) + Long.parseLong(toks[3])
+ Long.parseLong(toks[4]) + Long.parseLong(toks[6])
+ Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
return (float) (cpu2 - cpu1)/((cpu2 + idle2) - (cpu1 + idle1));
} catch (IOException ex) {
ex.printStackTrace();
}
return 0;
}
das Ergebnis drucken ich werfe einfach:
textview.setText((readCpuUsage() * 100) + "%");
wo readCpuUsage() ist das Ergebnis und es% zu verwandeln i mit 100 multiplizieren Dies ist
, wie ich es tat:
float xxz=readCpuUsage()*100;
textview.setText(String.format("%.0f",xxz) + "%");
Diese 10
Bitte bearbeiten und schreiben führen geben, wie Sie das Schwimmer wörtliche aktuell sind gedruckt wird. Ihre Funktion ist hier irrelevant, wenn es sich nur um eine Frage der Formatierung handelt. –
Dezimalzahlen? Meinst du Dezimal * Orte *? – EJP