2016-07-28 6 views
0

C#.Netプログラミングの初心者として、私はいくつかの算術計算をしようとしていました。下のコードに示すように、小数点以下を切り捨ててダブルデータ型の値を追加する

 double a, b; 
     a = 2.0; 
     b = 2.0; 
     double z = a + b; 
     Console.WriteLine(z); 

アウトプット:4、代わりに4.0 どのような解像度ですか?

+0

使用*フォーマット*: 'ます。Console.WriteLine(z.ToString( "F1"));' –

+0

何ら問題はありません。番号は4です。コンソールに書き込む*文字列*は、暗黙の形式を使用して生成されます。これを変更するには、希望のフォーマットを定義してください。 –

答えて

0

に変換される方法を制御する事前定義またはカスタムのフォーマット文字列を指定することができ:

 var a = 2.0; 
     var b = 2.0; 
     double z = a + b; 

     Console.WriteLine(string.Format("{0:0.00}", z)); 
     Console.WriteLine(String.Format("{0:0.0000}", z)); 

出力から上記:

4.00

4.0000

そして、もう一つの例:

 var a = 2.0; 
     var b = 2.2; 
     double z = a + b; 

     Console.WriteLine(string.Format("{0:0.0}", z)); 
     Console.WriteLine(String.Format("{0:0.000}", z)); 

上からの出力:

4.2

4.200

0

これを行うには、文字列の形式を使用します。

Console.WriteLine(z.ToString("N1"));

Nは、フォーマットタイプ(数値)で、1は、小数第1位を意味しています。

1

倍精度浮動小数点型が整数でない場合(つまり、小数点以下の桁数がある場合)、出力値を四捨五入したくないと仮定します。この場合、すべての「N1」にフォーマットされますzの値は不適切です。

if ((z % 1) == 0) 
    Console.WriteLine(z.ToString("N1")); // should output "4.0" 
else 
    Console.WriteLine(z); // should output "4.123456789" 
+0

この場合、値は切り捨てられません。丸い。しかし、そうでなければそれは公正なポイントです。 – pquest

-3

問題ありません。番号は4です。ただし、コンソールに書き込む文字列は暗黙の形式で生成されます。これを変更するには、ちょうどあなたが望む形式、例えば定義:文字列にフォーマットの種類がどのように機能するかMSDNに

Console.WriteLine("This is my number {0:N1"},z); 

または

Console.WriteLine(@"This is my number {z:N1}"); 

または

Console.WriteLine(z.ToString("N1"); 

セクション Formatting Types in the .NET Frameworkは説明しています。 NT。 Console.WriteLineString.ToFormatなどの方法あなたは10進形式を制御することができます別の方法ですあなたが値を文字列ここで

関連する問題