2009-10-16 8 views
6

は、どのように私は特定の問題(例えば、いくつかのロケールが使用する「」)私はロケールに変更するには、小数点区切りを希望していないということですC#Java DecimalFormatに相当するC#とは何ですか?

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); 

EDITに以下のコードを変換します。

+0

あなたが高いリットルに言及している場合、私たちが助けすることが容易になるだろうevel aim。 –

+0

単純な同等物はありませんか?実際の目的は、異なるロケールでFP番号を確認しながら、 '。小数点記号として使用する場合 –

答えて

8

あなたはNumberFormatInfoインスタンスでそれを設定し、ToStringメソッドでそれを使用することができます。

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

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

は、お使いのJavaバージョンの結果を持っているCustom Numeric Format StringsToString()機能バージョンを使用する(すなわち:あなたは何と呼ばれますパターン):

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

System.Globalization.NumberFormatInfo

3

decimal numbersにはdecimalタイプが格納されています。内部表現では、丸め誤差を発生させずに小数点演算を実行できます。

数値を取得したら、出力のためにDecimal.ToString()を使用してformatにすることができます。この書式設定はロケール固有です。あなたのcurrent culture settingを尊重します。小数点区切り文字については

+0

[* Decimal.ToString(IFormatProvider)](https://msdn.microsoft.com/en-us/library/3ebe5aks.aspx) – ToolmakerSteve

関連する問題