Description:
this is a sum of some floats numbers...
Je fais la somme de nombre flotants,
each float is a price
chaque float est un prix
and each float have just two numbers forward the "," like this preg : "/^[0-9]+,[0-9]{0,2}$/"
et chaque float n'a que deux nombres après la virgule, comme cette preg : "/^[0-9]+,[0-9]{0,2}$/"
mysql> SELECT prix FROM passage_liste WHERE prix%1!=0;
+-------+
| prix |
+-------+
| 40.5 |
| 14.5 |
[...]
| 89.5 |
| 30.6 |
+-------+
69 rows in set (0.00 sec)
but this sum of floats is not like I wait... there are more than two numbers forward the ,...
mysql> SELECT SUM(prix) FROM passage_liste;
+-----------------+
| SUM(prix) |
+-----------------+
| 10751.900011063 |
+-----------------+
How to repeat:
http://coucou747.hopto.org/paste_uploads.php?id=88&type=colore
mysql> SHOW CREATE table passage_liste
-> ;
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| passage_liste | CREATE TABLE `passage_liste` (
`id` int(10) unsigned NOT NULL auto_increment,
`id_client` int(10) unsigned NOT NULL,
`id_collaborateur` int(10) unsigned NOT NULL,
`description` text,
`date_de_passage` date default NULL,
`prix` float default NULL,
`prix_produits` float default NULL,
`type_paiment` enum('carte bleu','cheque','espece','moneo') default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SUM(prix) FROM passage_liste;
+-----------------+
| SUM(prix) |
+-----------------+
| 10751.900011063 |
+-----------------+
1 row in set (0.00 sec)
mysql> SELECT prix FROM passage_liste WHERE prix%1!=0;
+-------+
| prix |
+-------+
| 40.5 |
| 14.5 |
| 86.5 |
| 12.4 |
| 24.8 |
| 114.5 |
| 40.5 |
| 62.5 |
| 19.5 |
| 66.5 |
| 62.5 |
| 91.5 |
| 84.5 |
| 125.5 |
| 118.5 |
| 62.5 |
| 62.5 |
| 26.5 |
| 12.4 |
| 41.1 |
| 108.6 |
| 62.5 |
| 59.4 |
| 48.5 |
| 29.2 |
| 43.4 |
| 38.5 |
| 26.1 |
| 55.4 |
| 83.3 |
| 12.4 |
| 66.5 |
| 61.5 |
| 78.5 |
| 53.8 |
| 22.5 |
| 32.5 |
| 36.5 |
| 79.5 |
| 95.5 |
| 33.4 |
| 94.2 |
| 57.5 |
| 61.5 |
| 100.5 |
| 52.5 |
| 91.4 |
| 83.5 |
| 57.5 |
| 66.5 |
| 62.5 |
| 34.9 |
| 81.5 |
| 36.5 |
| 26.5 |
| 85.5 |
| 77.4 |
| 26.5 |
| 36.5 |
| 43.5 |
| 36.5 |
| 31.5 |
| 43.4 |
| 67.5 |
| 43.4 |
| 51.4 |
| 52.5 |
| 89.5 |
| 30.6 |
+-------+
69 rows in set (0.00 sec)
mysql> SELECT SUM(prix) FROM passage_liste WHERE prix%1!=0;
+-----------------+
| SUM(prix) |
+-----------------+
| 3919.9000110626 |
+-----------------+
1 row in set (0.01 sec)
Suggested fix:
mysql> SELECT version()
-> ;
+---------------------+
| version() |
+---------------------+
| 5.0.22-Debian_3-log |
+---------------------+
1 row in set (0.00 sec)
Description: this is a sum of some floats numbers... Je fais la somme de nombre flotants, each float is a price chaque float est un prix and each float have just two numbers forward the "," like this preg : "/^[0-9]+,[0-9]{0,2}$/" et chaque float n'a que deux nombres après la virgule, comme cette preg : "/^[0-9]+,[0-9]{0,2}$/" mysql> SELECT prix FROM passage_liste WHERE prix%1!=0; +-------+ | prix | +-------+ | 40.5 | | 14.5 | [...] | 89.5 | | 30.6 | +-------+ 69 rows in set (0.00 sec) but this sum of floats is not like I wait... there are more than two numbers forward the ,... mysql> SELECT SUM(prix) FROM passage_liste; +-----------------+ | SUM(prix) | +-----------------+ | 10751.900011063 | +-----------------+ How to repeat: http://coucou747.hopto.org/paste_uploads.php?id=88&type=colore mysql> SHOW CREATE table passage_liste -> ; +---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | passage_liste | CREATE TABLE `passage_liste` ( `id` int(10) unsigned NOT NULL auto_increment, `id_client` int(10) unsigned NOT NULL, `id_collaborateur` int(10) unsigned NOT NULL, `description` text, `date_de_passage` date default NULL, `prix` float default NULL, `prix_produits` float default NULL, `type_paiment` enum('carte bleu','cheque','espece','moneo') default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | +---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT SUM(prix) FROM passage_liste; +-----------------+ | SUM(prix) | +-----------------+ | 10751.900011063 | +-----------------+ 1 row in set (0.00 sec) mysql> SELECT prix FROM passage_liste WHERE prix%1!=0; +-------+ | prix | +-------+ | 40.5 | | 14.5 | | 86.5 | | 12.4 | | 24.8 | | 114.5 | | 40.5 | | 62.5 | | 19.5 | | 66.5 | | 62.5 | | 91.5 | | 84.5 | | 125.5 | | 118.5 | | 62.5 | | 62.5 | | 26.5 | | 12.4 | | 41.1 | | 108.6 | | 62.5 | | 59.4 | | 48.5 | | 29.2 | | 43.4 | | 38.5 | | 26.1 | | 55.4 | | 83.3 | | 12.4 | | 66.5 | | 61.5 | | 78.5 | | 53.8 | | 22.5 | | 32.5 | | 36.5 | | 79.5 | | 95.5 | | 33.4 | | 94.2 | | 57.5 | | 61.5 | | 100.5 | | 52.5 | | 91.4 | | 83.5 | | 57.5 | | 66.5 | | 62.5 | | 34.9 | | 81.5 | | 36.5 | | 26.5 | | 85.5 | | 77.4 | | 26.5 | | 36.5 | | 43.5 | | 36.5 | | 31.5 | | 43.4 | | 67.5 | | 43.4 | | 51.4 | | 52.5 | | 89.5 | | 30.6 | +-------+ 69 rows in set (0.00 sec) mysql> SELECT SUM(prix) FROM passage_liste WHERE prix%1!=0; +-----------------+ | SUM(prix) | +-----------------+ | 3919.9000110626 | +-----------------+ 1 row in set (0.01 sec) Suggested fix: mysql> SELECT version() -> ; +---------------------+ | version() | +---------------------+ | 5.0.22-Debian_3-log | +---------------------+ 1 row in set (0.00 sec)