[Vienna-pm] dbi oracle - bei gleitkommazahl voranstehende 0 abgeschnitten
Peter J. Holzer
hjp-vienna-pm-list at hjp.at
Wed Feb 11 12:35:34 PST 2009
On 2009-02-11 13:41:13 +0100, bernhard.massong at balrog.at wrote:
> ich hoffe, dass ich mit meiner Frage hier richtig bin.
>
> Ich greife mit DBI auf eine Oracle-Datenbank zu und speichere das
> Ergebnis als Textfile ab.
> Dabei hole ich mir unter anderem Werte des Datentyps Number. Bei
> Gleitkommazahlen von -1 bis 1 wird dabei jedoch die führende 0
> entfernt z.b. aus 0.53 wird .53 Mir ist leider nicht klar weshalb das
> so ist
Weil Oracle das so hübsch findet (das ist in englischsprachigen Ländern
durchaus üblich).
DBD::Oracle liefert Zahlen prinzipiell als String zurück und überlässt
die Umwandlung normalerweise der Oracle Client Library. Das hat einen
guten Grund: Zahlen in Oracle haben bis zu 38 Dezimalstellen, in Perl
jedoch typischerweise nur 53 Bit Mantisse - bei der Umwandlung würde
Genauigkeit verlorengehen.
Das Thema kam erst kürlich auf der dbi-users Mailinglist zur Sprache:
http://www.mail-archive.com/dbi-users@perl.org/msg31725.html ff.
> bzw. wie ich den richtigen Wert bekomme.
Wenn Dich der Genauigkeitsverlust nicht stört, addiere einfach 0 dazu.
Falls Du Zahlen so hoher Genauigkeit brauchst, sind die Module
Math::BigInt, Math::BigRat und Math::BigFloat vermutlich hilfreich.
hp
--
_ | Peter J. Holzer | Openmoko has already embedded
|_|_) | Sysadmin WSR | voting system.
| | | hjp at hjp.at | Named "If you want it -- write it"
__/ | http://www.hjp.at/ | -- Ilja O. on community at lists.openmoko.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.pm.org/pipermail/vienna-pm/attachments/20090211/1bbb02b6/attachment.bin>
More information about the Vienna-pm
mailing list