Mengalih keluar Sifar Jejak yang Tidak Diperlukan daripada Data Perpuluhan Pelayan SQL
Jenis dataSQL Server DECIMAL
(mis., DECIMAL(9,6)
) menyimpan nombor dengan ketepatan dan skala yang ditentukan. Kadangkala, sifar mengekor tambahan dilampirkan semasa pemasukan data.
Masalah: Bagaimana untuk menghapuskan sifar tertinggal yang berlebihan ini?
Penyelesaian:
Kuncinya ialah memahami bahawa mengekori sifar dalam nilai DECIMAL
adalah soal paparan dan bukannya storan data yang wujud. Pangkalan data menyimpan nilai; pemformatan aplikasi klien menentukan cara ia ditunjukkan. Satu kaedah yang berkesan ialah memanfaatkan penukaran jenis data.
Menghantar DECIMAL
ke FLOAT
jenis data dan kemudian kembali ke DECIMAL
mengalih keluar sifar di belakang. FLOAT
perwakilan biasanya tidak mengekalkan sifar yang tidak penting.
Contoh:
<code class="language-sql">SELECT CAST(123.4567 AS DECIMAL(9,6)) AS OriginalDecimal, CAST(CAST(123.4567 AS FLOAT) AS DECIMAL(9,6)) AS TrimmedDecimal</code>
Keputusan:
OriginalDecimal | TrimmedDecimal |
---|---|
123.456700 | 123.4567 |
Ini menunjukkan cara menghantar ke FLOAT
dan kembali ke DECIMAL
secara berkesan memangkas sifar di belakang tanpa mengubah nilai berangka asas. Ambil perhatian bahawa pendekatan ini mungkin memperkenalkan ralat pembundaran kecil dalam kes tepi tertentu disebabkan sifat perwakilan titik terapung. Untuk aplikasi kritikal yang memerlukan ketepatan mutlak, kaedah alternatif harus diterokai.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Sifar Jejak daripada Nilai Perpuluhan Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!