Memeriksa dalam struktur database baru saya melihat bahwa seseorang mengubah bidang dari float menjadi double. Bertanya-tanya mengapa, saya memeriksa dokumentasi mysql, tetapi jujur tidak mengerti apa bedanya.
Keduanya mewakili bilangan floating point. A FLOATuntuk DOUBLEangka presisi tunggal, sedangkan a untuk angka presisi ganda.
MySQL menggunakan empat byte untuk nilai presisi tunggal dan delapan byte untuk nilai presisi ganda.
Ada perbedaan besar dari angka floating point dan angka desimal (numerik), yang dapat Anda gunakan dengan DECIMALtipe datanya. Ini digunakan untuk menyimpan nilai data numerik yang tepat, tidak seperti angka floating point, di mana penting untuk menjaga presisi yang tepat, misalnya dengan data moneter.
@Kasus Mengapung dibulatkan dan desimal tidak. Desimal (9,3) bisa jadi misalnya 123456.789 sedangkan jika Anda mencoba menyimpan 123456.789 itu akan dimasukkan sebagai 123456.0 sebagai pelampung.
Perhatikan bahwa float dan double round setelah beberapa titik. Misalnya 100000.1 dipotong menjadi 100000 sebagai pelampung.
Blake
14
Pikir saya akan menambahkan contoh saya sendiri yang membantu saya melihat perbedaan menggunakan nilai 1.3saat menambahkan atau mengalikan dengan yang lain float, decimaldan double.
FLOAT menyimpan angka floating point dengan akurasi hingga delapan tempat dan memiliki empat byte sementara DOUBLE menyimpan angka floating point dengan akurasi hingga 18 tempat dan memiliki delapan byte.
Jawaban:
Keduanya mewakili bilangan floating point. A
FLOAT
untukDOUBLE
angka presisi tunggal, sedangkan a untuk angka presisi ganda.MySQL menggunakan empat byte untuk nilai presisi tunggal dan delapan byte untuk nilai presisi ganda.
Ada perbedaan besar dari angka floating point dan angka desimal (numerik), yang dapat Anda gunakan dengan
DECIMAL
tipe datanya. Ini digunakan untuk menyimpan nilai data numerik yang tepat, tidak seperti angka floating point, di mana penting untuk menjaga presisi yang tepat, misalnya dengan data moneter.sumber
Mungkin contoh ini bisa menjelaskan.
Kami memiliki tabel seperti ini:
Untuk perbedaan pertama, kami mencoba memasukkan catatan dengan '1.2' ke setiap bidang:
Tabel menunjukkan seperti ini:
Lihat perbedaannya?
Kami mencoba contoh berikutnya:
Halo! Kita bisa menemukan perbedaannya seperti ini:
sumber
float(10, 2)
Ganda seperti pelampung, kecuali kenyataan bahwa mereka dua kali lebih besar. Ini memungkinkan akurasi yang lebih besar.
sumber
Pikir saya akan menambahkan contoh saya sendiri yang membantu saya melihat perbedaan menggunakan nilai
1.3
saat menambahkan atau mengalikan dengan yang lainfloat
,decimal
dandouble
.1.3
float DITAMBAHKAN ke1.3
berbagai jenis:1.3
float DIBAGI oleh1.3
jenis yang berbeda:Ini menggunakan MySQL 6.7
Pertanyaan:
Buat Tabel dan Masukkan Data:
sumber
FLOAT menyimpan angka floating point dengan akurasi hingga delapan tempat dan memiliki empat byte sementara DOUBLE menyimpan angka floating point dengan akurasi hingga 18 tempat dan memiliki delapan byte.
sumber
Float memiliki 32 bit (4 byte) dengan akurasi 8 tempat. Double memiliki 64 bit (8 byte) dengan akurasi 16 tempat.
Jika Anda membutuhkan akurasi yang lebih baik, gunakan Double daripada Float .
sumber