10の場合は10.00ではなく10が必要10.11の場合は10.11が必要
これはコードなしで可能ですか?つまり、{0:N2}と同様に、フォーマット文字列のみを指定する
decimal num = 10.11M;
Console.WriteLine( num.ToString( "0.##" ) );
小数精度は小数型に固有であり、デフォルトでは小数点以下4桁であるように思われます。次のコードを使用した場合:
decimal value = 8.3475M;
Console.WriteLine(value);
decimal newValue = decimal.Round(value, 2);
Console.WriteLine(newValue);
出力は次のとおりです。
8.3475
8.35
これは、CultureInfoを使用して実現できます。以下のusingステートメントを使用して、ライブラリをインポートします。
using System.Globalization;
10進数の変換では、##はオプションの小数点以下の桁に使用でき、00は必須の小数点以下の桁に使用できます。以下の例を確認してください
double d1 = 12.12;
Console.WriteLine("Double :" + d1.ToString("#,##0.##", new CultureInfo("en-US")));
String str= "12.09";
Console.WriteLine("String :" + Convert.ToDouble(str).ToString("#,##0.00", new CultureInfo("en-US")));
String str2 = "12.10";
Console.WriteLine("String2 with ## :" + Convert.ToDouble(str2).ToString("#,##0.##", new CultureInfo("en-US")));
Console.WriteLine("String2 with 00 :" + Convert.ToDouble(str2).ToString("#,##0.00", new CultureInfo("en-US")));
int integ = 2;
Console.WriteLine("Integer :" + Convert.ToDouble(integ).ToString("#,##0.00", new CultureInfo("en-US")));
結果は次のとおりです
Double :12.12
String :12.09
String2 with ## :12.1
String2 with 00 :12.10
Integer :2.00