Hi,
bei Round wird ja keine angehängte Nullen dran gemacht also z.b. 2,5 statt 2,50. Gibt einen weg diese Null dann bei Bedarf dann anhängen zu lassen?
Hi,
bei Round wird ja keine angehängte Nullen dran gemacht also z.b. 2,5 statt 2,50. Gibt einen weg diese Null dann bei Bedarf dann anhängen zu lassen?
Er meinte "bei Bedarf".
Also nur wenn dort tatsächlich eine 0 stehen müsste.
Er müsste also vorher die Stellen abfragen und entsprechend reagieren.
Einfacher sollte es so gehen:
[autoit]ConsoleWrite(StringFormat("%.3f", 2.3) & @CRLF)
[/autoit]Perfekt, genau was ich wollte. Dankeschön.
Haber was mal auf die schnelle gebaut
[autoit]
Func AddZero($nNum, $nDezimal)
$nNum = StringSplit(String($nNum), ".", 2)
Do
If StringLen($nNum[1]) < $nDezimal Then $nNum[1] &= 0
Until StringLen($nNum[1]) = $nDezimal
Return $nNum[0] & "." & $nNum[1]
EndFunc ;==>AddZero
MsgBox(0, 0, AddZero(1.3, 2))
[/autoit]//Edit:Verdammt zu langsam
Hallo.
Also hier n kleines beispiel:
$num = Round(2.5)
MsgBox(0, "Zahl", $num & ".0")
Edit: Zu langsam
So wie es jetzt ist eignet sich deine Funktion bisher nicht für die gerundete Ausgabe von Werten.
Denn so wie es jetzt ist steckt das Skript in einer Endlosschleife fest wenn es mehr Dezimalstellen gibt als man angibt.
Bsp:
Global $Pi = 4 * ATan(1)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, 0, AddZero($Pi, 4))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func AddZero($nNum, $nDezimal)
$nNum = StringSplit(String($nNum), ".", 3)
Do
If StringLen($nNum[1]) < $nDezimal Then $nNum[1] &= 0
Until StringLen($nNum[1]) = $nDezimal
Return $nNum[0] & "." & $nNum[1]
EndFunc
Also entweder baust du da noch eine Abfrage ein oder du nimmst gleich StringFormat...
ich nehme dann StringFormat ist kürzer :wacko:
StringFormat rundet gleichzeitig Also reicht der Befehl aus:
[autoit]ConsoleWrite(StringFormat("%.3f", 2.3499) & @CRLF)
[/autoit]Hallo.
[autoit]
Also hier n kleines beispiel:$num = Round(2.5)
[/autoit]
MsgBox(0, "Zahl", $num & ".0")Edit: Zu langsam
Dann würde ja immer ein 0 angehängt, was
aber wahrscheinlich nicht gewünscht ist.
MfG
qixx
Dann würde ja immer ein 0 angehängt, was
aber wahrscheinlich nicht gewünscht ist.
MfG
qixx
Stimmt auch, wollte erst was mit StringReplace machen, ging aber nicht, weils ja n Int bzw. Float is.