[Vienna-pm] dbi oracle - bei gleitkommazahl voranstehende 0 abgeschnitten

Bernhard Massong bernhard.massong at balrog.at
Wed Feb 11 16:00:11 PST 2009


Vielen Dank für die ausführlichen Antworten. Hat mir weitergeholfen...


Peter J. Holzer schrieb:
> 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
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Vienna-pm mailing list
> Vienna-pm at pm.org
> http://mail.pm.org/mailman/listinfo/vienna-pm



More information about the Vienna-pm mailing list