tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von sheel
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
680
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    lonol15 lonol15 ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    78
    Hi,
    es ist so, ich will überprüfen ob bei einer Division ein rest raus kommt.
    Dazu habe ich zwei floats die ich teile und dann will ich überprüfen ob der Rest des Ergebnisses 0 oder
    was anderes ist. Wenn der Rest=0 ist gibt die Methode true zurück ansonsten false.

    Wisst ihr eine Methode mit der ich den Rest eines floats rausbekomme?
    Oder irgendwelche anderen Ratschläge oder Ideen?
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.490
    Modulo
    Code java:
    1
    
    float rest = a % b;

    Gruß

    @chmee: In Java geht % auch mit Kommazahlen.
    lonol15 bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Du sprichst ja von Floats. Hilft Dir Folgendes weiter?

    1.
    Code :
    1
    2
    
    (A) 26.34 / 13.78 = 1.91146589
    (B) 25.5 / 12.75 = 2

    2. Nun verrückst Du die Nachkommastelle, indem Du mit einer Zehnerstelle multiplizierst.
    Code :
    1
    2
    
    (A) 1.91146589 * 10 = 19.1146589
    (B) 2 * 10 = 20
    (Eigentlich sollte die Nachkommastelle um die Anzahl der (Nachkommastellen-1) verrückt werden, damit es akkurat ist.)

    3. Nun machst Du eine Überprüfung, ob das Ergebnis aus (2.) mit der nach (int) gewandelten Zahl übereinstimmt.
    Code :
    1
    2
    
    (A) (int)(19.1146589) == (19.1146589) -> false
    (B) (int)(20) == (20) -> true
    Wahlweise könnte (sollte?) man es mit floor() machen.. Ich weiß nicht, wie das unter Java zu handhaben ist..

    mfg chmee

    Nachtrag: Ach nee, modulo funktioniert auch mit float, na denn. ahoi
    Geändert von chmee (02.01.12 um 21:09 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    868
    Wobei ich Modulo nicht bei float/double einsetzen würde, das funktioniert nur in seltenen Ausnahmefällen wie gewünscht.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  5. #5
    lonol15 lonol15 ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    78
    Also bei mir funktioniert Modulo perfekt. (wann funktionierts denn nicht?)
    Endlich kann ich primzahlen ausrechnen xD xD
    Geändert von lonol15 (02.01.12 um 22:38 Uhr)
     

  6. #6
    Avatar von j2se
    j2se j2se ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    94
    Blog-Einträge
    1
    Zitat Zitat von lonol15 Beitrag anzeigen
    Also bei mir funktioniert Modulo perfekt. (wann funktionierts denn nicht?)
    Endlich kann ich primzahlen ausrechnen xD xD
    versuche folgendes

    Code :
    1
    2
    3
    
             double a = 2.4;
             double b = 0.2;
             System.out.println( a % b );

    wie perfekt ist das ergebnis?
     

  7. #7
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.490
    Rundungsfehler...

    aber zu "Primzahlen ausrechnen": Warum dann überhaupt float?
    Primzahlen sind doch ganze Zahlen...
    chmee bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  8. #8
    lonol15 lonol15 ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    78
    Was würdest du sonst nehmen?
     

  9. #9
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.490
    int?
    Zum Primzahl-ermitteln brauch zumindest ich keine einzige Kommazahl.
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    bool isprim(unsigned int x)
    {
        int a = 2, b = (int)sqrt(x) + 1;
        while(a < b)
        {
            if(!(x % a))
                return false;
        }
        return true;
    }
    Ungetestet, aber so ungefähr gehts.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Division in C
    Von theflasher im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 02.11.07, 12:11
  2. Antworten: 7
    Letzter Beitrag: 21.12.05, 17:30
  3. Division mit Rest
    Von don_david im Forum C/C++
    Antworten: 14
    Letzter Beitrag: 17.03.05, 17:14
  4. Division by zero
    Von Spontan im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.03.03, 19:08
  5. Antworten: 3
    Letzter Beitrag: 02.11.01, 23:07