Positive Zahlen formatieren

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

Hallo,
kann mir jemand kurz helfen denn ich habe bei der Suche hier und bei google nichts gefunden. Eventuell fehlt mir auch nur der korrekte Suchbegriff.

Kann ich in Python Float Zahlen so formatieren, dass bei positiven Zahlen immer das Plus-Zeichen vorangestellt wird?
Kann ich diesen Wert dann auch so in eine mySQL Datenbank schreiben bzw. wie muss dann in der Datenbank das Feld deklariert sein damit dort auch das Plus-Zeichen auftaucht?

Vielen Dank für Eure Hilfe
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

sunnyraven hat geschrieben: Kann ich in Python Float Zahlen so formatieren, dass bei positiven Zahlen immer das Plus-Zeichen vorangestellt wird?
Mit den On Board Formating-Regeln offenbar nicht.

Du müsstest Dir also eine Funktion schreiben, die das erledigt.
sunnyraven hat geschrieben: Kann ich diesen Wert dann auch so in eine mySQL Datenbank schreiben bzw. wie muss dann in der Datenbank das Feld deklariert sein damit dort auch das Plus-Zeichen auftaucht?
Ist das denn eher Darstellungssache oder wirklich ein Bestandteil der Daten? Bei letztem belasse es bei einem Fließkommafeld und formatiere ebenfalls die Ausgaben, bei letzterem wäre vermutlich ein Text-Typ sinnvoll.

Beschreibe vielleicht mal genauer, *was* Du damit lösen willst!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@sunnyraven: Das geht mit Zeichenkettenformatierung mittels ``%``-Operator oder `format()`-Methode auf Zeichenketten.

Wenn man das als Zahl in der Datenbank speichert dann kann man dort keine *Anzeige*wünsche speichern, denn es wird ja beim Abfragen wieder eine Zahl geliefert.
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

Danke für die Schnellen Antworten.

Ich habe hier eine Anforderung bei der ich Daten Speichere, und nach einem gewissen Zeitraum als .csv zur Verfügung stellen muss. Jetzt gibt es dort die hirnrissige Vorgabe, dass auch positive Werte als solche gekennzeichnet werden müssen.

Ich möchte halt schon so viel wie möglich so in die DB schreiben wie ich es später benötige um bei der Ausgabe möglichst wenig Arbeit zu haben.
BlackJack

@sunnyraven: Es macht aber IMHO wenig Sinn Zahlen in einer Datenbank als Text zu speichern. Datenspeicherung und spätere Darstellung sind zwei verschiedene, von einander unabhängige Bereiche. Da die Werte für CSV sowieso in Zeichenketten umgewandelt werden müssen, macht es an der Stelle auch nicht wirklich Mehraufwand beim Programmieren dort eine entsprechende Formatierungsanweisung anzugeben.
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

Danke BlackJack ich dachte halt ich könnte mir das irgendwie sparen.

Bist Du so nett und erklärst mir Kurz Deinen Quellcode weil irgendwie stehe ich da gerade auf der Leitung.

Vielen Dank und viele Grüße
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@sunnyraven: so schwer ist es auch nicht die Formatierungsmöglichkeiten in der Dokumentation durchzulesen: '%+15.3f'%1234.5
BlackJack

@sunnyraven: Welchen Quellcode? Das BASIC-Programm in meiner Signatur? ;-) Das zählt einfach nur Schafe bis zum Einschlafen.
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

:P :P :P und ich Depp google eben nach Zeilen-Nummerierung & Python :oops: :oops: :oops:

Das mit dem Formatieren ist schon klar.

Vielen Dank an Euch alle für die schnelle und unterhaltsame Hilfe
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hyperion hat geschrieben: Mit den On Board Formating-Regeln offenbar nicht.
Ich Depp... ich hatte den OP falsch verstanden; ich dachte er möchte *nur* bei positiven Zahlen ein "+" und sonst *kein* Zeichen... :oops: Ok, aber der Link stimmte ja :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten