Robert Lacroix: Runden auf zwei Nachkommastellen

Hi,
Als ich Franz-Josephs posting las, hab ich mich gefragt, wie man in VBScript bei ner single zahl die nachkommastellen kürzen kann. Geht das ?
Danke, Robert.

  1. Hi,
    Als ich Franz-Josephs posting las, hab ich mich gefragt, wie man in VBScript bei ner single zahl die nachkommastellen kürzen kann. Geht das ?
    Danke, Robert.

    Hallo,

    Wenn Eingabe = 3.1415627 ist, dann ergibt
    Ergebnis = Round(Eingabe, 2) -> 3.14
    Ergebnis = FormatCurrency(Eingabe) -> 3,14 DM

    Tschau, Stefan

    1. Hallo,

      Wenn Eingabe = 3.1415627 ist, dann ergibt
      Ergebnis = Round(Eingabe, 2) -> 3.14
      Ergebnis = FormatCurrency(Eingabe) -> 3,14 DM

      Tschau, Stefan

      Hi Stefan!

      Aber ergibt wenn

      Eingabe = 3,5 ist nicht

      Round(Eingabe) --> 3 ?

      Jedoch sollte doch meines Wissens bei 5 aufderundet werden (4)??

      mfg
      JankoW

      1. Hallo JankoW!

        Eingabe = 3,5 ist nicht

        Round(Eingabe) --> 3 ?

        Jedoch sollte doch meines Wissens bei 5 aufderundet werden (4)??

        Ich habe mal ein kurzes Script geschrieben, um auf das Problem draufzukommen:

        <%
        REM -- Auf zwei stellen Runden
        Response.Write "Auf zwei stellen Runden:<br>"
        a = 3.14
        for i = 0.003 to 0.007 step 0.001
        b = a + i
        Response.Write "Wert: " & b & " --> " & Round(b, 2) & "<br>"
        next
        Response.Write "<br>"
        REM -- Auf eine stelle Runden
        Response.Write "Auf eine stelle Runden:<br>"
        a = 3.1
        for i = 0.03 to 0.07 step 0.01
        b = a + i
        Response.Write "Wert: " & b & " --> " & Round(b, 1) & "<br>"
        next
        %>

        Das Ergebnis hat mich äußert erstaunt:

        Auf zwei stellen Runden:
        Wert: 3.143 --> 3.14
        Wert: 3.144 --> 3.14
        Wert: 3.145 --> 3.14
        Wert: 3.146 --> 3.15
        Wert: 3.147 --> 3.15

        Auf eine stelle Runden:
        Wert: 3.13 --> 3.1
        Wert: 3.14 --> 3.1
        Wert: 3.15 --> 3.2
        Wert: 3.16 --> 3.2
        Wert: 3.17 --> 3.2

        Bei Runden auf eine Stelle macht er keinerlei Probleme auf auf zwei stellen rundet er schlichtweg falsch! Auf drei Stellen rundet er aber wieder richtig.

        Habe einiges versucht und auch im MSDN nachgeschlagen aber keinen Hinweisdrauf gefunden, kann aber nicht sagen, daß es sich um einen Bug handelt.

        Aber wenn irgendwer dieses Problem löst, bitte ich um eine Mail, würde mich sehr interessieren!

        CU Roman

        1. Bei Runden auf eine Stelle macht er keinerlei Probleme auf auf zwei stellen rundet er schlichtweg falsch! Auf drei Stellen rundet er aber wieder richtig.

          Habe einiges versucht und auch im MSDN nachgeschlagen aber keinen Hinweisdrauf gefunden, kann aber nicht sagen, daß es sich um einen Bug handelt.

          Aber wenn irgendwer dieses Problem löst, bitte ich um eine Mail, würde mich sehr interessieren!

          CU Roman

          Hallo!
          Das Problem geht ja noch weiter. Wenn Du 3,5 rundest, spuckt er Dr 3 aus.
          Irgendwie klappt es periodisch alle 2 Stellen nur.
          WARUM?????

          Es kann doch nicht angehen, daß man jede Zahl, die man runden will erst druch eine eigens gebastelte Funktion hauane muß.

          mfg
          JankoW