Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah format %g fmt.Printf mengendalikan medan lebar dan ketepatan apabila berurusan dengan sifar utama?

Bagaimanakah format %g fmt.Printf mengendalikan medan lebar dan ketepatan apabila berurusan dengan sifar utama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 10:35:30317semak imbas

How does fmt.Printf's %g format handle width and precision fields when dealing with leading zeroes?

Gelagat fmt.Printf dengan Medan Lebar dan Ketepatan untuk %g

Dalam fmt.Printf, format %g untuk titik terapung nilai menawarkan fleksibiliti dalam menentukan kedua-dua lebar dan ketepatan. Walau bagaimanapun, terdapat nuansa yang perlu dipertimbangkan apabila menggunakan medan ini dalam kombinasi.

Ketepatan dan Jumlah Digit

Tidak seperti format titik terapung lain (%f dan %e), untuk %g, medan ketepatan menentukan jumlah bilangan digit selepas tempat perpuluhan (tidak termasuk sifar dan eksponen pendahuluan). Contohnya, %.4g memastikan jumlah empat digit, tanpa mengira sebarang sifar pendahuluan.

Sifar Utama dan Lebar Minimum

Sifar pendahuluan dikira sebagai digit untuk ketepatan tetapi dikecualikan dalam mengira lebar minimum. Lebar minimum menentukan lebar medan keseluruhan dan ditetapkan menggunakan medan lebar (cth., g).

Cara .9g Berkelakuan

Dalam kes khusus anda, .9g menyatakan sejumlah sembilan digit (tidak termasuk sifar pendahuluan) dan lebar minimum 10 aksara:

  • Untuk 0.0606060606060606, sembilan digit tanpa sifar pendahuluan memberikan 0.060060606 menepati lebar minimum 10.
  • Untuk 0.3333333333333333, sembilan digit tanpa sifar pendahuluan memberikan 0.333333333, juga memenuhi lebar minimum.
  • Untuk 0.05, sembilan digit jatuh yang singkat, sembilan digit. daripada lebar minimum 10, jadi ia berlapik untuk mengisi baki enam aksara.
  • Perkara yang sama berlaku untuk 0.4.
  • Untuk 0.1818181818181818, sembilan digit tanpa sifar pendahuluan memberikan 0.1821818 , yang sekali lagi memenuhi lebar minimum.

Jadi, secara ringkasnya, output yang berbeza untuk nilai input anda adalah disebabkan oleh interaksi antara ketepatan (menentukan bilangan digit yang dipaparkan) dan lebar minimum (memastikan lebar medan tertentu).

Atas ialah kandungan terperinci Bagaimanakah format %g fmt.Printf mengendalikan medan lebar dan ketepatan apabila berurusan dengan sifar utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn