spinnerudi: Betragsprüfung auf 0.05 Rappen

Hi!

Ich weiss echt nicht mehr weiter...

Muss eine Betragsprüfung einbauen, welche einen Betrag auf 0.05 Rappen überprüft. Also ob der eingegebene Betrag durch 0.05 teilbar ist.

Dachte ich nichts einfacher als das:
betrag % 0.05 muss einfach 0 ergeben (Restwert Division)

Jedoch stimmt das bei vielen Beträgen nicht!?!?!?
z.B. 0.15 % 0.05 gibt nicht 0 sondern 0.049999 ????

dann habe ich gedacht, eventuell gibts probleme wegen 0.05, also habe ich folgendes probiert:
(betrag *100) % 5
jedoch auch hier, viele beträge lösen ein völlig falsches ergebnis aus.

wie kann ich denn eine solche prüfung, ob der betrag durch 5 rappen teilbar ist realisieren???

  1. Hi spinnerudi!

    [...] rappen [...]

    Ich musste schon ein wenig schmunzeln. =)

    round(betrag *100) % 5

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi spinnerudi!

      [...] rappen [...]
      Ich musste schon ein wenig schmunzeln. =)

      round(betrag *100) % 5

      round(betrag % 0.05) == 0 ggf besser - die modulo-rechnung wird ja dennoch falsch gerundet werden, auch wenn du vorher den dividenden rundest

      1. Hi suit!

        round(betrag *100) % 5
        round(betrag % 0.05) == 0 ggf besser - die modulo-rechnung wird ja dennoch falsch gerundet werden, auch wenn du vorher den dividenden rundest

        Nö, (Int1 % Int2) liefert auf jeden Fall ein ganzzahliges Ergebnis.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hi suit!

          Nö, (Int1 % Int2) liefert auf jeden Fall ein ganzzahliges Ergebnis.

          Ok, dann versuch mal (0.15 % 0.05). Das liefert komischerweise keine Ganzzahl!

          MfG H☼psel

          1. Hi spinnerudi!

            Nö, (Int1 % Int2) liefert auf jeden Fall ein ganzzahliges Ergebnis.
            Ok, dann versuch mal (0.15 % 0.05). Das liefert komischerweise keine Ganzzahl!

            Int1, Int2 ∈ ℤ
            Int = Integer = Englisch für Ganzzahl

            round() liefert eine Ganzzahl zurück und 5 ist ebenfalls eine.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  2. Danke für die tipps!!
    naja so heisst das bei uns in der Schweiz nun mal:)

    Also der Tipp von Hopsel scheint auf den ersten Blick gut zu funktionieren.

  3. @@spinnerudi:

    Muss eine Betragsprüfung einbauen, welche einen Betrag auf 0.05 Rappen überprüft. Also ob der eingegebene Betrag durch 0.05 teilbar ist.

    Fällt der Groschen?

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. Hi,

      Muss eine Betragsprüfung einbauen, welche einen Betrag auf 0.05 Rappen überprüft. Also ob der eingegebene Betrag durch 0.05 teilbar ist.
      Fällt der Groschen?

      Da geht's aber um die hundertfachen Beträge ;-)

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.