Penukaran apungan berketepatan dwi tepat kepada rentetan dalam .NET, mengelakkan tatatanda saintifik
Menukar nombor titik terapung berketepatan dua kepada perwakilan rentetan titik terapung dalam .NET boleh memberikan cabaran, terutamanya apabila mencari penyelesaian yang berkesan menindas tatatanda saintifik untuk nombor besar dan kecil.
Salah satu cara ialah menggunakan rentetan format tersuai yang menentukan ketepatan yang diingini selepas titik perpuluhan. Untuk mewakili dengan tepat semua kemungkinan nilai titik terapung berketepatan ganda, sejumlah besar nombor diperlukan. Penyelesaian umum untuk keperluan ini ialah:
<code class="language-csharp">doubleValue.ToString("0." + new string('#', 339))</code>
Rentetan format ini mengandungi 339 paun aksara ('#'), mewakili bilangan maksimum tempat perpuluhan bukan sifar (15) yang boleh dianjakkan ke kanan oleh eksponen (324 bit).
Adalah penting untuk ambil perhatian bahawa disebabkan potensi pembundaran eksplisit ToString(), kaedah ini memberikan ketepatan dan bukannya penukaran tanpa kehilangan. Untuk penukaran pergi balik tanpa kerugian, pertimbangkan penyelesaian alternatif yang disediakan oleh @Loathing.
Untuk meningkatkan kebolehgunaan dan prestasi, rentetan format boleh disimpan sebagai pemalar:
<code class="language-csharp">public static class FormatStrings { public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################"; }</code>
Menggunakan teknik ini, nombor titik terapung berketepatan dua boleh ditukar dengan mudah kepada perwakilan rentetan tanpa tatatanda saintifik, memastikan paparan tepat nombor besar dan kecil dalam aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukarkan Ganda kepada Rentetan dengan Tepat dalam .NET Tanpa Notasi Saintifik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!