Round angehängten Null

  • 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?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (13. Februar 2010 um 11:48)

  • 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]
  • 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

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, 0, AddZero(1.3, 2))

    [/autoit]

    //Edit:Verdammt 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:

    Spoiler anzeigen
    [autoit]

    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

    [/autoit]


    Also entweder baust du da noch eine Abfrage ein oder du nimmst gleich StringFormat...

  • StringFormat rundet gleichzeitig ;) Also reicht der Befehl aus:

    [autoit]

    ConsoleWrite(StringFormat("%.3f", 2.3499) & @CRLF)

    [/autoit]
  • 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.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.