Saya tidak tahu apa cara terbaik untuk menyimpannya - tetapi setidaknya ada opsi yang lebih baik daripada menggunakan varchar(39)(atau varchar(40)jika Anda membutuhkannya ditandatangani); alih-alih gunakan a decimal(39,0). Dari dokumen mysql :
Tipe Fixed-Point (Exact-Value)
Jenis DECIMAL dan NUMERIC menyimpan nilai data numerik yang tepat. Jenis-jenis ini digunakan ketika penting untuk menjaga presisi yang tepat, misalnya dengan data moneter. Di MySQL, NUMERIC diimplementasikan sebagai DECIMAL, jadi pernyataan berikut tentang DECIMAL berlaku sama untuk NUMERIC.
MySQL 5.1 menyimpan nilai DECIMAL dalam format biner. Sebelum MySQL 5.0.3, mereka disimpan sebagai string. Lihat Bagian 11.18, “Matematika Presisi”.
Dalam deklarasi kolom DECIMAL, presisi dan skala dapat (dan biasanya) ditentukan; sebagai contoh:
salary DECIMAL(5,2)
Dalam contoh ini, 5 adalah presisi dan 2 adalah skala. Presisi mewakili jumlah digit signifikan yang disimpan untuk nilai, dan skala mewakili jumlah digit yang dapat disimpan mengikuti titik desimal.
SQL standar mengharuskan DECIMAL (5,2) dapat menyimpan nilai apa pun dengan lima digit dan dua desimal, sehingga nilai yang dapat disimpan dalam kisaran kolom gaji dari -999,99 hingga 999,99.
Dalam SQL standar, sintaks DECIMAL (M) setara dengan DECIMAL (M, 0). Demikian pula, sintaks DECIMAL setara dengan DECIMAL (M, 0), di mana implementasi diizinkan untuk menentukan nilai M. MySQL mendukung kedua bentuk sintaks DECIMAL ini. Nilai default M adalah 10.
Jika skalanya adalah 0, nilai DECIMAL tidak mengandung titik desimal atau bagian fraksional.
Jumlah digit maksimum untuk DECIMAL adalah 65, tetapi rentang aktual untuk kolom DECIMAL tertentu dapat dibatasi oleh presisi atau skala untuk kolom tertentu. Ketika kolom tersebut diberi nilai dengan lebih banyak digit mengikuti titik desimal daripada yang diizinkan oleh skala yang ditentukan, nilai tersebut dikonversi ke skala itu. (Perilaku yang tepat adalah sistem operasi khusus, tetapi umumnya efeknya terpotong ke jumlah digit yang diizinkan.)
Itu disimpan dikemas, sehingga akan memakan ruang lebih sedikit daripada varchar ( 18 byte, jika saya melakukan matematika saya dengan benar ), dan saya berharap Anda bisa melakukan matematika secara langsung, tapi saya sudah tidak pernah mencoba dengan angka sebesar itu untuk melihat apa yang terjadi.