Vous recherchez probablement le FORMAT
ou ROUND
fonction :
Utilisation de FORMAT()
, en fonction de vos paramètres régionaux et vos besoins spécifiques, vous devrez peut-être remplacer le séparateur de milliers :
mysql> SELECT FORMAT(9.755046187483832e17,0);
975,504,618,748,383,200
mysql> SELECT REPLACE(FORMAT(9.755046187483832e17,0), ',','');
975504618748383200
Par contre, ROUND()
étant un numérique fonction, elle n'affiche que des chiffres :
mysql> SELECT ROUND(9.755046187483832e17,0);
975504618748383200
Voir http://sqlfiddle.com/#!2/d41d8/17614 pour jouer avec ça.
MODIF : Comme vous l'avez remarqué, les deux derniers chiffres sont arrondis à 00 . C'est à cause de DOUBLE
limites de précision. Vous devez vous rappeler que double sont approximatifs . Si vous avez besoin de valeurs précises et/ou de plus de chiffres que ceux disponibles avec la précision de 16 bits de double, vous devrez probablement changer le type de votre colonne en DECIMAL
. Par défaut DECIMAL
a une précision de 10 chiffres (10 base 10 chiffres). Vous pouvez demander explicitement jusqu'à 65 chiffres.
Par exemple, si vous avez besoin d'une précision allant jusqu'à 20 chiffres, vous écrivez quelque chose comme ça :
CREATE TABLE tbl (myValue DECIMAL(20), ...
Voir http://dev.mysql.com/ doc/refman/5.6/en/fixed-point-types.html
Veuillez noter cependant que les choses ne sont pas c'est simple. La sélection de la colonne décimale peut la convertir silencieusement en double (ou bigint ?) perdant ainsi la précision supplémentaire. Vous devrez peut-être transtyper explicitement en chaîne afin de préserver la précision totale. Cela signifie que vous devrez peut-être gérer cela au niveau de l'application.
create table tbl (dblValue DOUBLE, decValue DECIMAL(20,0));
insert into tbl values (975504618748383289, 975504618748383289);
SELECT dblValue, decValue FROM tbl;
--> DBLVALUE DECVALUE
--> 975504618748383200 975504618748383200
SELECT CAST(dblValue AS CHAR), CAST(decValue AS CHAR) FROM tbl;
--> CAST(DBLVALUE AS CHAR) CAST(DECVALUE AS CHAR)
--> 9.755046187483832e17 975504618748383289
Voir http://sqlfiddle.com/#!2/d5f58/2 pour des exemples.