2017-01-17 4 views
0

-0.944444444444444になると-0.94になります。 入力された温度が30.3で、摂氏を摂氏に設定しているとします。小数点第2位までの数値を四捨五入する方法は?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace TemperatureConverter 
{ 
    public partial class FrmTemperature : Form 
    { 
     public FrmTemperature() 
     { 
      InitializeComponent(); 
     } 

     private void btnCalcFahrenheit_Click(object sender, EventArgs e) 
     { 
      lblFahrenheit.Text = Convert.ToString(9.0/5.0 * Convert.ToDouble(txtTemperature.Text) + 32.0); 
     } 

     private void btnCalcCelsius_Click(object sender, EventArgs e) 
     { 
      lblCelsius.Text = Convert.ToString(5.0/9.0*(Convert.ToDouble(txtTemperature.Text) - 32.0)); 
     } 
    } 
} 
+0

@ChristianGollhardt私はそれを読んで、いくつかの方法を試しましたが、答えが得られないようです。だから私は自分自身を投稿した。 – Chibbie

+0

シンプルな使用 '(あなたの計算).ToString("#。## ")' –

+0

@ChristianGollhardt私はそれを試みましたが、それもうまくいかなかった – Chibbie

答えて

2

使用次のようなToString方法:

(5.0/9.0*(Convert.ToDouble(txtTemperature.Text) - 32.0)).ToString("0.00"); 

私はまた、あなたがユーザのエラーを表示する別のステップとして、温度のテキストを解析示唆しています。

double temp; 
if (double.TryParse(txtTemperature.Text, out temp)) 
    lblCelsius.Text = (5.0/9.0*(temp - 32.0)).ToString("0.00"); 
else 
    // Show error to user 
+2

[重複を処理する方法](http://meta.stackexchange.com/questions/10841/how-should-duplicate-questions-be-handled)を参照してください。 –

1

おそらく、string.Format()または文字列補間(C#6.0の新機能)を使用します。文字列の補間を使用して

使用String.Formatの()

private void btnCalcFahrenheit_Click(object sender, EventArgs e) 
{ 
    var fahrenheit = 9.0/5.0 * Convert.ToDouble(txtTemperature.Text) + 32.0; 
    lblFahrenheit.Text = string.Format("{0:N0}", fahrenheit); 
} 
private void btnCalcCelsius_Click(object sender, EventArgs e) 
{ 
    var celsius = 5.0/9.0*(Convert.ToDouble(txtTemperature.Text) - 32.0); 
    lblCelsius.Text = string.Format("{0:N0}", celsius); 
} 

:フォーマッタ "N2" はあなたの選択したロケールの基数と区切り文字を使用して数値をフォーマットすること

private void btnCalcFahrenheit_Click(object sender, EventArgs e) 
{ 
    var fahrenheit = 9.0/5.0 * Convert.ToDouble(txtTemperature.Text) + 32.0; 
    lblFahrenheit.Text = $"{fahrenheit:N2}"; 
} 
private void btnCalcCelsius_Click(object sender, EventArgs e) 
{ 
    var celsius = 5.0/9.0*(Convert.ToDouble(txtTemperature.Text) - 32.0); 
    lblCelsius.Text = $"{celsius:N2}"; 
} 

注意。 US-ENの場合、それは "。"になります。基数には "、"はセパレータに使用します。たとえば、1295.422度は1,295.42と書式設定されます。

関連する問題