biri sayı biçimleri olduğunu.Floating Point Number ayrıştırma: Catch All algoritması var mı? Çok kültürlü programlama eğlenceli bölümlerden
- Amerikalılar 10.000,50
- Fransız kullanacağım kullanmak 10,000.50
- Almanları kullanmak 10 000,50
Benim ilk yaklaşım bir karşılaşmaya kadar, dize almak geriye doğru ayrıştırmak olurdu ayırıcı ve bunu ondalık ayırıcım olarak kullan. Bununla bariz bir kusur vardır: 10.000 10.10 olarak yorumlanır.
Başka bir yaklaşım: dizgede 2 farklı sayısal olmayan karakter varsa, ondalık ayırıcı olarak sonuncuyu kullanın ve diğerlerini atın. Sadece bir tane varsa, bir kereden fazla gerçekleşip gerçekleşmediğini kontrol edin ve varsa atın. Sadece bir kez görünürse, ondan sonra 3 haneli olup olmadığını kontrol edin. Varsa, atın, aksi halde ondalık ayırıcı olarak kullanın.
bariz "en iyi çözüm" Kullanıcı kültür veya Tarayıcı algılamak olacaktır, ancak en-ABD Windows/Browser kullanarak bir Fransız varsa o işe yaramaz..net Framework çalışırken Double.(Try)Parse()
daha iyidir bazı efsanevi kara büyü kayan nokta ayrıştırıcı içeriyor mu sayı biçimini otomatik olarak algılama?