Saya mengubah string seperti "41.00027357629127", dan saya menggunakan;
Convert.ToSingle("41.00027357629127");
atau
float.Parse("41.00027357629127");
Metode ini mengembalikan 4.10002732E + 15 .
Ketika saya mengonversi ke float, saya menginginkan "41.00027357629127". String ini harus sama ...
c#
.net
string
floating-point
type-conversion
Mehmet
sumber
sumber
Jawaban:
Lokal utas Anda disetel ke tempat yang tanda desimalnya adalah "," bukan ".".
Coba gunakan ini:
Perhatikan, bagaimanapun, bahwa pelampung tidak dapat menahan banyak digit presisi. Anda harus menggunakan ganda atau Desimal untuk melakukannya.
sumber
using System.Globalization;
untuk mengaksesCultureInfo
Pertama, ini hanya presentasi dari
float
angka yang Anda lihat di debugger. Nilai sebenarnya kira-kira tepat (sebanyak mungkin).Catatan: Gunakan selalu informasi CultureInfo saat berhadapan dengan angka floating point versus string.
Ini hanya sebuah contoh; pilih budaya yang sesuai untuk kasus Anda.
sumber
new System.Globalization.CultureInfo("tr-TR")
Anda dapat menggunakan berikut ini:
sumber
Menggunakan
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
dokumentasisumber
Ketepatan pelampung adalah 7 digit. Jika Anda ingin menyimpan keseluruhan lot, Anda perlu menggunakan tipe ganda yang menyimpan 15-16 digit. Mengenai pemformatan, lihat postingan tentang pemformatan ganda . Dan Anda perlu khawatir tentang pemisah desimal di C # .
sumber
Kamu bisa
double.Parse("41.00027357629127");
sumber
Anda dapat menggunakan parsing dengan double sebagai ganti float untuk mendapatkan nilai presisi yang lebih tinggi.
sumber