2016-08-03 7 views
0

文字列(フォーマット "1.1"または "11.11"など)を10進数に変換しようとしています。 しかし出力には "。" "、"文字列を10進数に変換するC#

"1.1 + 2.2"と入力します。

最初= 1.1(文字列)

秒= 2.2(文字列)

私は "11" と "22" を取得進数に変換してみてください。

"。"を変換しない場合と同じ結果です。 〜に "、"。

私がstackoverflowで見つけた解決策はありませんでした。私は それを修正するために管理

if (first.Contains(".")) 
      { 
       DecimalMethod(first); 
       MessageBox.Show(first); 
       first.Replace(".", ","); 

      } 


      if (second.Contains(".")) 
      { 
       DecimalMethod(second); 
       MessageBox.Show(second); 
       second.Replace(".", ","); 
      } 


      decimal.TryParse(first, out firstNumber); 
      decimal.TryParse(second, out secondNumber); 
+0

。 – Sinatr

答えて

1

私はにtryParseの一部を変更:(リンクされた質問の回答を参照してください)文化を指定するようにしてください

 System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US"); 
     decimal.TryParse(first, System.Globalization.NumberStyles.Currency, 
          ci, out firstNumber); 
     decimal.TryParse(second, System.Globalization.NumberStyles.Currency, 
          ci, out secondNumber); 
+0

あなたが使用しているシステムがUS-Englishとして設定されていないと思います。数値パーサは、明示的にオーバーライドしない限り、PCのコントロールパネルの設定に従います。もちろん、それはあなたが何をしたいかによって異なりますが、アプリケーションをテストする間、文化を設定するのではなく、コントロールパネルの設定を調整することを避けることを検討してください。また、キーボードレイアウトの中には、キーパッドの小数点記号を異なる方法で使用するものもあります。 –

+0

この記事をご覧ください:https://highfieldtales.wordpress.com/2014/10/19/numpads-decimal-point-correction-for-wpf/ –

関連する問題