phpbar.de logo

Mailinglisten-Archive

[php] OT: MySQL internes Runden

[php] OT: MySQL internes Runden

Michael Borchers list at tridemail.de
Mit Jun 20 08:06:48 CEST 2007


> Michael Borchers schrieb:
>>> Am 15.06.2007 um 09:32 schrieb Michael Borchers:
>>>
>>>> Bsp.:
>>>> 6.45*12.04 = 77,658
>>>>
>>>> Leider rundet MySQL direkt auf 77.66.
>>> Sicher?
>>>
>>> mysql> SELECT VERSION();
>>> +------------+
>>> | VERSION()  |
>>> +------------+
>>> | 5.0.37-log |
>>> +------------+
>>> 1 row in set (0.00 sec)
>>>
>>> mysql> DESCRIBE test;
>>> +-------+--------------+------+-----+---------+-------+
>>> | Field | Type         | Null | Key | Default | Extra |
>>> +-------+--------------+------+-----+---------+-------+
>>> | eins  | decimal(4,2) | NO   |     |         |       |
>>> | zwei  | decimal(4,2) | NO   |     |         |       |
>>> +-------+--------------+------+-----+---------+-------+
>>> 2 rows in set (0.00 sec)
>>>
>>> mysql> SELECT *, `eins` * `zwei` FROM test;
>>> +------+-------+-----------------+
>>> | eins | zwei  | `eins` * `zwei` |
>>> +------+-------+-----------------+
>>> | 6.45 | 12.04 |         77.6580 |
>>> +------+-------+-----------------+
>>> 1 row in set (0.00 sec)
>>>
>>> mysql> SELECT `eins` * 12.04 FROM test;
>>> +----------------+
>>> | `eins` * 12.04 |
>>> +----------------+
>>> |        77.6580 |
>>> +----------------+
>>> 1 row in set (0.01 sec)
>>>
>>> mysql> SELECT `eins` * '12.04' FROM test;
>>> +------------------+
>>> | `eins` * '12.04' |
>>> +------------------+
>>> |           77.658 |
>>> +------------------+
>>> 1 row in set (0.02 sec)
>>>
>>> Also, bei mir kommen die Sachen richtig raus.
>>
>> Sorry, MySQL 5.0.36, meine Testquery:
>> SELECT menge,ep,menge*ep as ep_total,(1.0000*menge*ep) as ep_total2 FROM
>> gaubenkalkulation_material WHERE gaubenkalkulation_id=11101
>>
>> Ein paar Ergebnisse:
>> menge      ep          ep_total      ep_total2
>> 738.76      0.01      7.39          7.3876
>> 369.38      0.60      221.63      221.6280
>> 2.00          3.95      7.90          7.9000
>> 160.60      0.01      1.61          1.6060
>> 8.03          0.55      4.42          4.4165
>> 8.03          1.10      8.83          8.8330
>
> Hast du das auch mal direkt auf dem MySQL Server in der Konsole probiert?
> Vielleicht ist dein Client Fehlerhaft, bzw. die Bibliothek.
>
>
> -- 
> Sebastian

Habe leider keine Konsole. Aber zu dem Thema gibt es wohl hier was zu lesen 
(auf englisch für 5.0), auch auf deutsch,
allerdings 5.1 (aber die Änderungen scheinen dieselben zu sein):
http://dev.mysql.com/doc/refman/5.0/en/precision-math.html
http://dev.mysql.com/doc/refman/5.1/de/precision-math.html


php::bar PHP Wiki   -   Listenarchive