Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du kannst auch ne for-schleife basteln in der du jedes char einzeln durchgehst. Speicherst dann halt alles vor den Punkt in nen String o. ä. und alles danach in nen anderen.
Hab mit die API mal angeguckt und da ist ja nicht wirklich viel dabei. Sehe da atm keine andere Lösung als die von roar, also das ganze rechnerisch lösen. Dazu solltest Du idealerweise wissen, wieviele Nachkommastellen es sind, damit Du sinnvoll mit einem Vielfachen von 10 multiplizieren kannst, um das Komma wegzukriegen. Oder gibts ne Mathematische Lösung, um die Anzahl Nachkommastellen beliebiger Zahlen zu ermitteln? Mir fällt da grad nix ein.
Noch mal zu modulo:
modulo funktioniert nur mit ganzen Zahlen und gibt den Rest an, der bei Teilung übrig bleibt.
also 3 mod 2 = 1 oder 4 mod 2 = 0
dementsprechend: irgendwas mod 1 = 0, denn division durch 1 geht immer
es wäre mir neu, wenn man modulo auch auf dezimalzahlen anwenden kann. (hab das ganze selber 4 Semester lang anderen Studenten erklärt :wink: )
also wird dieses Verfahren zur Lösung des Problems leider nicht viel beitragen können.
In Java liefert Modulo 1 bei Fließkommazahlen in der Tat 0, aber mit dem Rest, also den Nachkommastellen. Nur damit hat man nix gewonnen. Die Zahl kann man mit einfachen Mitteln auch anders erreichen (ohne die bekannten Rundungsfehler zu bekommen), nämlich indem man die Zahl erst nach int castet. Dann hat man die Zahl vor dem Komma. Danach zieht man diese Zahl von der eigentlichen ab.
Über die Länge der Nachkommazahl könnte es in der Tat klappen, die Anzahl der Nachkommastellen zu berechnen. Jedoch kannst Du nicht einfach Länge - 2 nehmen, weil die Länge sich natürlich auf die binäre Repräsentation der Zahl bezieht. Du musst die binäre Länge erst in die dezimale umrechnen und kannst dann mit 10 * diese Länge multiplizieren, um das Komma korrekt zu verschieben.
Edit: Gerade mal nachgeguckt - es gibt wohl gar keine Methode, um die Länge eines Float zu bestimmen!?
Ähem, ich wollte keineswegs nochmal auf die ursprüngliche Frage Antworten, da diese ausreichend beantwortet worden ist. Meine Antwort war nur für deine Frage
byto hat gesagt.:
Oder gibts ne Mathematische Lösung, um die Anzahl Nachkommastellen beliebiger Zahlen zu ermitteln
Das ganze ist tatsächlich nicht soo trivial... man kann zwar den Nachkommateil durch den IEEEremainder bekommen (Math.IEEEremainder(zahl, 1)) aber die ist unter umständen fälschlich - weil unpräzise... aus ner 0,27 wird dann schonmal ne 0,2699999
man sollte also vorher wissen wie groß die genauigkeit ungefähr sein soll. Wenn man das alles voraussetzen kann, dann geht das ganze ja relativ easy - indem man die zahl mit 10 multipliziert so lange wie der rest (achtung genauigkeit!) != 0 ist... aber bei Fließkommazahlen ist das ganze recht kritisch
aber kann man da evtl. binär was regeln? ... ist irgendwie schon zu spät für mich grad - denke da morgen nochmal drüber nach...