Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Matikan notasi ilmiah MySQL

Anda mungkin mencari FORMAT atau ROUND fungsi:

Menggunakan FORMAT() , tergantung pada lokal Anda dan kebutuhan spesifik Anda, Anda mungkin harus mengganti pemisah ribuan :

mysql> SELECT FORMAT(9.755046187483832e17,0);
975,504,618,748,383,200

mysql> SELECT REPLACE(FORMAT(9.755046187483832e17,0), ',','');
975504618748383200

Sebaliknya, ROUND() menjadi numerik fungsi, itu hanya menampilkan digit :

mysql> SELECT ROUND(9.755046187483832e17,0);
975504618748383200

Lihat http://sqlfiddle.com/#!2/d41d8/17614 untuk bermain dengan itu.

EDIT: Seperti yang Anda perhatikan, dua digit terakhir dibulatkan menjadi 00 . Itu karena DOUBLE batas presisi. Anda harus ingat bahwa ganda adalah perkiraan . Jika Anda memerlukan nilai presisi dan/atau lebih banyak digit daripada yang tersedia dengan presisi ganda 16-bit, Anda mungkin perlu mengubah jenis kolom menjadi DECIMAL . Secara default DECIMAL memiliki presisi 10 digit (10 basis 10 angka). Anda dapat secara eksplisit meminta hingga 65 digit.

Misalnya, jika Anda membutuhkan presisi hingga 20 digit, Anda dapat menulis seperti ini:

CREATE TABLE tbl (myValue DECIMAL(20), ...

Lihat http://dev.mysql.com/ doc/refman/5.6/en/fixed-point-types.html

Harap dicatat namun dari hal-hal yang tidak sesederhana itu. Memilih kolom desimal mungkin secara diam-diam mengubahnya menjadi ganda (atau besar ?) sehingga kehilangan presisi ekstra. Anda mungkin harus secara eksplisit melemparkan ke string untuk mempertahankan presisi penuh. Itu berarti Anda mungkin harus menghadapinya di tingkat aplikasi.

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

Lihat http://sqlfiddle.com/#!2/d5f58/2 sebagai contoh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL error saat memasukkan data yang berisi apostrof (tanda kutip tunggal)?

  2. TIME() Contoh – MySQL

  3. Mendapatkan hitungan harian untuk acara yang tidak terjadi setiap hari

  4. MySQL:Pilih Entri Acak, tetapi Bobot Menuju Entri Tertentu

  5. Cara terbaik untuk membaca CSV di Ruby. CSV lebih cepat?