Bazı dize değerlerine sahibim Bir dizeye dönüştürmek istiyorum, dönüştürürken formatlamayı aynı tutmak istiyorum, yani 999.0000 (float) -> 999.0000 (String). Benim problemim, ondalık noktadan sonraki değerlerin rasgele bir sayı içermesidir, önceki örnekte olduğu gibi, bir dizeye dönüştürüldüğünde bunlar sıyrılırlar, sonuçta ben aslında sonuç olarak 999 olur.Float to Dize biçim belirteci
Baktım MSDN'daki toString()
yönteminin biçimindeki tanımlayıcılarda, RoundTrip ('R') belirteci istediğimi üretecek gibi görünüyor, ancak yalnızca Tek, Çift ve BigInt değişkenleri için destekleniyor. Float değişkenleri için böyle bir format belirleyici var mı? Ya da değerleri sadece çiftlere dönüştürmek daha mı kolay olurdu?
GÜNCELLEME: Sadece netlik sağlamak için, takip eden sıfırları tutmak istememin nedeni, ondalık basamakların karşılaştırmasını yapıyorum, yani, iki değer arasındaki ondalık basamaktan sonraki basamak sayısını karşılaştırıyorum. Yani, örneğin, 1.00 ve 1.00000, ondalık noktadan sonra farklı bir sayıya sahiptir. Bunun garip bir istek olduğunu biliyorum, iş için ve gereksinim yüksek seviyeden geliyor.
GÜNCELLEME 2-3-11:
Ben baskını gibi onları ayrıştırma sonra Metin dosyasından sayıları okuma ve ediyorum, çok zor bu düşünüyordum, ben kontrol etmek programı değiştirmek için gidiyorum dize değerlerinin ondalık veya tam sayı olup olmadığı. Bu çok anlayışlı olmasına rağmen, zamanınızı boşa harcadığım için üzgünüm. C#
kaç basamak ondalık noktadan sonra bakmak isterseniz?Eğer bu dinamiği korumak istiyorsanız, değerin doğru kayan olduğunu varsayarak .ToString ("G") –
kullanın. Rakamlar değişecektir, basit olması için ondalık noktadan sonraki basamak aralığının herhangi bir yerde olabileceğini söyleyebilirim 1 ile 5 arası – kingrichard2005
.ToString ("G") –