Dezimalzahlen

  • 6 Antworten
  • Letztes Antwortdatum
L

likedue

Ambitioniertes Mitglied
1
Hey Leute,

ich versuche bei einer meiner älteren Apps Werte einzulesen, diese dann über php in eine MySQL-Database zu schieben und mit einem auf C# aufgesetzten Programm zu verarbeiten.

Soweit so stabil.;)

Jetzt versuche ich aber aktuell die Verarbeitung von Double-Werten zu realisieren.

Ich kann die Dezimalwerte mit einem "." erstellen und ablegen.
Ich kann aber mit diesem "." nicht in der Datenbank weiter arbeiten.

Im Netz finde ich recht wenig über das Thema.
Gerade den nervigen Punkt zu einem Komma werden zu lassen, um dann damit weiterarbeiten zu können scheint mir recht schwierig.

Gibt es eine Möglichkeit die Double-Eingabe auf "europäischen"-Stil auszulegen um damit dann arbeiten zu können?

Über jeden Hint bin ich dankbar!

Gruß
Due
 
(Was hat das mit Android zu tun?)

Kann es sein, dass dein MySQL in deutschem Locale läuft,
deshalb bei Fließkommazahlen ein Komma erwartet,
somit die eigegebenen Zahlen als Text auffasst
und deshalb nicht weiterverarbeiten (was auch immer du damit meinst) kann?
 
Danke erstmal für deine Antwort.

Mir fällt vermehrt auf, dass wenn ich in französisch- oder englischsprachigen Foren nach Antworten suche ich auf eine völlig andere Gattung Nerds treffe.

Man bekommt sinnvolle Antworten, ab und an auch Codeschnipsel mit denen man arbeiten und lernen kann und im Regelfall hat man auch nicht das Gefühl, als ginge es bei den erfragten Inhalten um geheime Stasi-akten.

Es nervt mich zuweilen schon länger, dass man in deutschen Foren wie Android-Hilfe grundsätzlich mit einer unhöflichen Haltung beantwortet wird.

Sind das Defizite und er Erziehung?
Kann eine einfache Frage so aufregen?
Warum dann beantworten?
Es sollten doch nicht jene zum Ventil unausgeglichener Kommentatoren werden, die lediglich Unterstützung suchen.

Und mal weg vom persönlichen Eitel und der Arroganz:
Irgendwo haben alle mal klein angefangen.
Kein Mensch in diesem Forum ist etwas besseres;)

-----------------------------------------------

Aber um auf deine Antwort einzugehen.

Was das ganze mit Android zu tun hat scheint nicht ganz klar aus der Frage hervor zu gehen.
Verzeihung.

Ich habe das Problem, dass ich im Android lediglich Dezimalzahlen mit "." anstelle des in Europa üblichen "," als Trennung eingeben kann.
Ich lese also einen String ein, arbeite damit eventuell kurz als Double und übergebe den String dann an meine Datenbank.

Ich verarbeite(stelle Berechnungen an, backe damit Kuchen) aber am anderen Ende die Informationen mit "," indem ich den String zum double parse.

Logischerweise crasht die App am anderen Ende, da die Notationen einfach Fehler hervorrufen.

Das hat das mit Android zu tun.

Ich würde gerne wissen, wie ich anstelle der Punkte die Kommata einlesen lasse.

Mehr nicht.^^
 
Zuletzt bearbeitet:
Sorry, das mit dem Android war eine ernsthafte Frage. Auf Serverseite wäre so ein Problem nämlich relativ zu machen. Und da will man schon wissen, ob es wirklich auf Android gemacht werden muss.

Ansonsten: Wenn du Gegenfragen, die dir nicht in den Kram passen, als Beleidigung auffaßt, kann ist nicht das Forum das Problem. :D

Achja, du willst ja nur Codeschnipsel:

Code:
s.replace(",",".")
 
likedue schrieb:
Danke erstmal für deine Antwort.

Mir fällt vermehrt auf, dass wenn ich in französisch- oder englischsprachigen Foren nach Antworten suche ich auf eine völlig andere Gattung Nerds treffe.

Man bekommt sinnvolle Antworten, ab und an auch Codeschnipsel mit denen man arbeiten und lernen kann und im Regelfall hat man auch nicht das Gefühl, als ginge es bei den erfragten Inhalten um geheime Stasi-akten.

Es nervt mich zuweilen schon länger, dass man in deutschen Foren wie Android-Hilfe grundsätzlich mit einer unhöflichen Haltung beantwortet wird.

Sind das Defizite und er Erziehung?
Kann eine einfache Frage so aufregen?
Warum dann beantworten?
Es sollten doch nicht jene zum Ventil unausgeglichener Kommentatoren werden, die lediglich Unterstützung suchen.

Und mal weg vom persönlichen Eitel und der Arroganz:
Irgendwo haben alle mal klein angefangen.
Kein Mensch in diesem Forum ist etwas besseres;)

Sehr geehrter Herr Due,
leider muss ich da einige Punkte zu irher Nerd Teorie Ergänzen:
1. Fasse ich die Bezeichnung Nerd als Beleidigung auf, klar bedeutet sie Computerenthusiasten, jedoch ist sie eher negativ behaftet, was aufgrund von Vorurteilen herrührt.
2. Die Frage von DieGoldeneMitte ist durchaus berechtigt. Es bringt mehr, den Sachverhalt komplett zu klären, als zu Erklärungen auszuholen, die dann nicht zum Thema passen.
3. Jetzt mal im Ernst, du erwartest von einem Forum, in dem du fast keinen Beitrag in ein anderes Thema als ein von dir erstelltes gepostet hat, dass jede Antwort sofort das Richtige ist? Das die, die dir bei deinem Problem helfen wollen, irgendwelche "Nerds" sind, die kein Leben haben und nichts anderes machen wollen, als dir bei deinen Problemen zu helfen? (Wenn ich von mir ausgehe, bin ich hier im Forum nicht nur um Hilfe zu bekommen, sondern auch um Anderen zu helfen.)

Jede Antwort bringt dich weiter, evtl. fällt jemand Anderem einen besseren Weg ein.
4. Das Forum ist nicht da, um dir ein Programm zu schreiben, sondern um Probleme (wie dein Problem mit den Punkten) zu lösen. Wie es hier immer wieder genannt wird, werden hier im Forum eher LÖSUNGSVORSCHLÄGE, als komplette Lösungen gegeben. Was letztlich besser ist, als ein perfekter Code Snippet, von dem nur du was hast. Andere, die den Beitrag durch die Google-Suche finden, werden eher mit einer Erklärung bzw. Links weiterkommen, als mit Snippets.
5. Außerdem sollte man auch das Engagement mancher Mitglieder beachten:
Verzeihung DieGoldeneMitte, du musst grad mal als Beispiel herhalten:
810 Beiträge, davon nur ein Bruchteil in eigenen Themen. Das nenne ich engagiert(Es gibt natürlich noch bessere Beispiele).
6. Ich sag es einfach mal so: Dann stell deine Frage in ein englisches oder französisches Forum, es zwingt dich keiner zu einem deutschen (insbesondere zu Android Hilfe). Wen du hier aber Fragen stellst, dann begegne den anderen Mitglieder bitte mit etwas Respekt, denn was manche hier an Arbeit reinstecken ist echt beachtlich und lobenswert.

(Das sollte keine Beleidigung dirgegenüber sein, nur eine Rechtfertigung, da ich es sehr mies gegenüber DieGoldeneMitte finde. Ich hoffe du verstehst, was ich meine, auch wenn ich es evtl. in Teilen hart formuliert habe.)

Um aber auf die Lösung zurückzukommen:
Die Lösung von DieGoldeneMitte ist nachvollziehbar:
Kann es sein, dass dein MySQL in deutschem Locale läuft,
deshalb bei Fließkommazahlen ein Komma erwartet,
somit die eigegebenen Zahlen als Text auffasst
und deshalb nicht weiterverarbeiten (was auch immer du damit meinst) kann?

Wenn du die Lokale deiner Datenbank nicht ändern kannst/willst (lässt sich glaub ich ziemlich leicht über PHP Admin machen), musst du wirklich den weg über das Replace nehmen:
Also beim Schreiben in die Datenbank:
PHP:
String stringFuerDeineMySQL = String.valueOf(doubleVariable);
stringFuerDeineMySQL  = stringFuerDeineMySQL .replace(",","."); //ersetze Komma durch Punkt
Beim Lesen aus der Datrenbank:
PHP:
String stringAusDatenbank = getStringfromDatabase().replace(".", ",")
Double Variable = Double.parseDouble(stringausDatenbank);
getStringfromDatabase() liegert das benötigte Stringabbild des Double Wertes von der Datenbank

Hoffe das reicht als Snippet.
Gruß
 
  • Danke
Reaktionen: MrPermanent, DieGoldeneMitte und keinbrain
Blackfire hat es PERFEKT wiedergeben. Für diesen dreisten Kommentar von dir sollte man dich eigentlich aus dem Forum bannen.

Sind das Defizite und er Erziehung?

Wenn ich sowas lese, überlege ich mir, ob nicht eher DU soziale Defizite hast, mal ganz abgesehen von deinen programmiertechnischen und anscheinend auch bei deinen Deutschkenntnissen.

Und mal ein kleiner Tipp am Rande: Wenn du Hilfe suchst, ist es nicht die beste Idee, die Leute die dir helfen wollen, zu beleidigen.

Einen schönen Abend noch
 
Dreist hin oder her, ich finde diesen post auch nicht sehr nett!!!

klar ist, die englisch sprachige Community ist wirklich anders, da tummelt sich aber auch die ganze Welt und dort gibt es mehr "Helden" die 3 Zeilen progen können und sich berufen füllen anderen zu helfen. Deswegen gibt es im englisch sprachigen raum mehr code snippets, weil ich kann ja "hello world" und die Welt soll es wissen und von mir lernen. Der Deutsche bereich ist halt sehr klein. Solche Leute haben wir aber auch.

Ich möchte nur zu bedenken geben das man nicht gleich "Programmier" Fähigkeiten aberkennen/anzweifeln sollte. Ich habe ne ganze zeit VB6.0 gelernt! mit dem Datentyp Variant war alles ganz einfach, keine sorgen, keine casts. Alles konnte mit allem, VB generell war sehr Inzestiös.

Menschen die von dieser Plattform kommen, VB, haben in der Androidwelt große Schwierigkeiten. Sie sind super Entwickler, performant, speicher sparend ... aber der doofe Variant hat sie versaut....

Ist fast so als wenn einer von Cobald zu AnsiC wechselt. Das müssen keine schlechten Leute sein, aber in Cobald war doch vieles anders als in AnsiC.
 
Zurück
Oben Unten