Archiv verlassen und diese Seite im Standarddesign anzeigen : Integer Wert umwandeln
sunshine-live
22-12-2004, 08:58
Hallo,
ich bekomme mit einer snmpget abfrage einen Integer Wert unter Unix
in kb ausgegeben.
Beispiel: 456356 als Integer
Ich möchte die Ausgabe in MB haben, daher teile ich durch 1048576.
Da Integer keine Nachkommastellen kennt bekomme ich nur eine gerundete Zahl ausgegeben.
Wer kennt eine Möglichkeit, die MB Angabe mit zwei Nachkommastellen ausgeben zu lassen?
Vielen Dank für eure Hilfe
sunshine-live
michael.sprick
22-12-2004, 10:20
mit welcher Sprache arbeitest Du denn überhaupt?
peschmae
22-12-2004, 11:51
So ziemlich alle Sprachen können irgendwie ein printf. z.B. in der bash:
peschmae@thinkpad:~$ printf "%.2f\n" 1241924.124124
1241924.12
MfG Peschmä
sunshine-live
22-12-2004, 14:04
schreibe das script in einer .sh
Teile nicht du 1048576, sondern durch 1048576.0, damit du eine Float-Zahl bekommst.
Meistens reicht es, die Zahl mit einem Punkt abzuschließen
sunshine-live
22-12-2004, 15:12
Funktioniert leider nicht;
hier mein code:
#get ram
ram=`snmpget -Oqv -v 2c -c public 175.41.66.66 SNMPv2-SMI::enterprises.9.3.6.6.0`
let ram1=$ram/1048576.0
echo Ram:
echo "===="
echo $ram1 MB
Die Shells können nur mit Integers rechnen.
Nutz den Umweg über perl oder bc.Für dc
ram1=$(echo 4k $ram 1048576 /p | dc)bc nutzt die Reverse Polish Notation, ist also stackbasiert.
4k Setzt die anzahl der Nachkommastellen auf 4, / dividiert die beiden vorherigen Zahlen voneinander, p gibt sie aus.
$(...) ist äquivalent zu `...`, nur besser lesbarer, IMHO
sunshine-live
04-01-2005, 11:03
danke funktioniert wunderbar
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.