Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menghuraikan rentetan dengan titik perpuluhan dengan pasti kepada dua kali ganda, tanpa mengira tetapan setempat?
Penukaran Rentetan-ke-Double Teguh: Mengendalikan Variasi Tempatan
Menukar secara langsung rentetan yang mengandungi titik perpuluhan kepada dua kali ganda menggunakan double.Parse()
boleh menjadi masalah kerana pemisah perpuluhan khusus tempat. Sebagai contoh, koma (,
) mungkin berfungsi sebagai pemisah perpuluhan dalam sesetengah tempat, yang membawa kepada ralat penghuraian jika rentetan menggunakan noktah (.
).
Untuk menjamin penghuraian yang konsisten tanpa mengira tetapan setempat, gunakan parameter CultureInfo.InvariantCulture
dalam kaedah double.Parse()
. Ini memastikan operasi penghuraian menggunakan pendekatan invarian budaya, mengabaikan tempat semasa sistem.
Contoh: double.Parse("3,5", CultureInfo.InvariantCulture)
akan menghuraikan "3,5" dengan betul sebagai 3.5, walaupun tempat semasa menggunakan koma sebagai pemisah perpuluhan. Begitu juga, double.Parse("3.5", CultureInfo.InvariantCulture)
akan sentiasa menghuraikan "3.5" dengan betul, tanpa mengira tempat. Pendekatan ini menghapuskan kemungkinan kegagalan penghuraian yang disebabkan oleh variasi pemisah perpuluhan bergantung setempat.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menghuraikan rentetan dengan titik perpuluhan dengan pasti kepada dua kali ganda, tanpa mengira tetapan setempat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!