2016-06-15 5 views
2

こんにちは、私はアマチュアのプログラマーで、電卓を作ろうとしています。私は、テキストボックス内の値のforesignを変更するボタンを持っています。 はここに私のロジックです:C#の計算機の変更は?

textBox1.Text = (double.Parse(textBox1.Text) * (-1)).ToString(); 

問題は、ボタンが押されたときにことを、符号が変化しているが、「-」記号は値の最後に置かれています。 forサイクルでこれをどうしようもできますか?ここで

は私の電卓です:

+4

ロケールは何ですか?一部のロケールで最後に表示されます。 – ChrisF

+1

システムロケールで数値の末尾にマイナス記号が付いた数字が表示される可能性はありますか?もしそうなら、 'ToString'メソッドはそれが負の数を文字列に変換するときそれを尊重します。 –

+0

textBox1.Text = " - " + textBox1.Text try? –

答えて

2

あなたはマイナスがSystem.Globalization.NumberFormatInfo.InvariantInfoか、ご希望の形式でToStringのオーバーロードを使用して最初に表示されていることを強制することができます。

double d; 
if (double.TryParse(textBox1.Text, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out d)) 
{ 
    d = -d; 
    textBox1.Text = d.ToString(NumberFormatInfo.InvariantInfo); 
} 
+2

そのカルチャと一緒に_parse_する必要はありませんか、そうでない場合はそのボタンを2回クリックすることが問題になります。 – Joey

+0

これは私のために働いていません –

+1

@VigiMenyhártGyula:申し訳ありません、代わりに何が起こりますか? –