par
moogli » 09 juin 2011, 17:11
Je viens de vérifier : la cause en est que mysql ignore les nombres avec virgule, quel que soit le format utilisé:
float, float(11,6), numeric (7,2), decimal (7,2)
hum ça m'étonne, et que fait on de la doc sur les types numérique ?
http://dev.mysql.com/doc/refman/5.0/fr/ ... types.html ?
et je viens de tester (version 5.5.11) avec
create table virgule (
id int not null auto_increment,
virgule numeric (7,2) default 0,
chiffre float(7,2) default 0,
primary key(id)
)engine=myisam;
Query OK, 0 rows affected (0.09 sec)
mysql> describe virgule;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| virgule | decimal(7,2) | YES | | 0.00 | |
| chiffre | float(7,2) | YES | | 0.00 | |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.29 sec)
mysql> insert into virgule values (null,12.8,25.45);
Query OK, 1 row affected (0.00 sec)
mysql> insert into virgule values (null,12.8,25.45),(null,12.64,4528.126),(null,456789464,456.0);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> select * from virgule;
+----+----------+---------+
| id | virgule | chiffre |
+----+----------+---------+
| 1 | 12.80 | 25.45 |
| 2 | 12.80 | 25.45 |
| 3 | 12.64 | 4528.13 |
| 4 | 99999.99 | 456.00 |
+----+----------+---------+
4 rows in set (0.00 sec)
pas de soucis ça passe nikel, il faut se rappeler que la décimal chez les anglo-saxons c'est le point et pas la virgule (d'où la fonction, qui en fonction de la local remplace les virgule par les points et vice versa (ben oui il utilise la virgule en séparateur de millier ...)
[quote="sirakawa"]Je viens de vérifier : la cause en est que mysql ignore les nombres avec virgule, quel que soit le format utilisé:
float, float(11,6), numeric (7,2), decimal (7,2)
[/quote]
hum ça m'étonne, et que fait on de la doc sur les types numérique ? [url]http://dev.mysql.com/doc/refman/5.0/fr/numeric-types.html[/url] ?
et je viens de tester (version 5.5.11) avec
[sql]
create table virgule (
id int not null auto_increment,
virgule numeric (7,2) default 0,
chiffre float(7,2) default 0,
primary key(id)
)engine=myisam;
Query OK, 0 rows affected (0.09 sec)
mysql> describe virgule;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| virgule | decimal(7,2) | YES | | 0.00 | |
| chiffre | float(7,2) | YES | | 0.00 | |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.29 sec)
mysql> insert into virgule values (null,12.8,25.45);
Query OK, 1 row affected (0.00 sec)
mysql> insert into virgule values (null,12.8,25.45),(null,12.64,4528.126),(null,456789464,456.0);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> select * from virgule;
+----+----------+---------+
| id | virgule | chiffre |
+----+----------+---------+
| 1 | 12.80 | 25.45 |
| 2 | 12.80 | 25.45 |
| 3 | 12.64 | 4528.13 |
| 4 | 99999.99 | 456.00 |
+----+----------+---------+
4 rows in set (0.00 sec)
[/sql]
pas de soucis ça passe nikel, il faut se rappeler que la décimal chez les anglo-saxons c'est le point et pas la virgule (d'où la fonction, qui en fonction de la local remplace les virgule par les points et vice versa (ben oui il utilise la virgule en séparateur de millier ...)