2009-10-16 17 views
6

nasıl problem (örn bazı Yerel Ayarlar kullanırsınız '') ı Yerel ile değiştirmek ondalık ayırıcı isteyen kalmamasıdır C#Java DecimalFormat'ın C# karşılığı nedir?

DecimalFormat form 
String pattern = ""; 
for (int i = 0; i < nPlaces - nDec - 2; i++) { 
     pattern += "#"; 
} 
pattern += "0."; 
for (int i = nPlaces - nDec; i < nPlaces; i++) { 
     pattern += "0"; 
} 
form = (DecimalFormat) NumberFormat.getInstance(); 
DecimalFormatSymbols symbols = form.getDecimalFormatSymbols(); 
symbols.setDecimalSeparator('.'); 
form.setDecimalFormatSymbols(symbols); 
form.setMaximumIntegerDigits(nPlaces - nDec - 1); 
form.applyPattern(pattern); 

DÜZENLEME için aşağıdaki kodu dönüştürmek olacaktır. C#

+0

daha yüksek l söz varsa bize yardımcı olmak için daha iyi olur evel amacı. –

+0

Basit bir eşdeğer var mı? Asıl amaç, '' tekrarlanırken farklı lokallerde FP sayılarının olmasını sağlamaktır. ondalık ayırıcı olarak –

cevap

8

Bir NumberFormatInfo örneğinde ayarlayın ve ToString ile kullanabilirsiniz:

NumberFormatInfo nfi = new NumberFormatInfo(); 
    nfi.NumberDecimalSeparator = "."; 

    //** test ** 
    NumberFormatInfo nfi = new NumberFormatInfo(); 
    decimal d = 125501.0235648m; 
    nfi.NumberDecimalSeparator = "?"; 
    s = d.ToString(nfi); //--> 125501?0235648 

, java sürümü sonucunu sahip Custom Numeric Format Strings ile ToString() işlev sürümünü kullanmak için (yani: Eğer dediği desen):

s = d.ToString("# ### ##0.0000", nfi);// 1245124587.23  --> 1245 124 587?2300 
             //  24587.235215 -->  24 587?2352 

System.Globalization.NumberFormatInfo

3

, decimal numbers hataları yuvarlama olmadan ondalık matematik gerçekleştirmek için izin veren bir dahili temsiliyle, decimal tip saklanır.

Numarayı aldıktan sonra, çıktı amacıyla Decimal.ToString() kullanarak format kullanabilirsiniz. Bu biçimlendirme yerel-özeldir; current culture setting'a saygı duyar. ondalık ayırıcı için

+0

To * biçimini * kontrol edin, [Decimal.ToString (IFormatProvider)] kullanın (https://msdn.microsoft.com/en-us/library/3ebe5aks.aspx) – ToolmakerSteve

İlgili konular