1

ある通貨を別の通貨に変換しようとしています

例えば。

  decimal value= 0;
  var text = "£135";
  decimal.TryParse(text, NumberStyles.Any, new CultureInfo("fa-IR"), out value);

この結果は「0」です。私はここで何か悪いことをしていますか?

または、これを行う他の方法はありますか?

どんな助けでも大歓迎です!!!

アップデート

疲れた

var value= string.Format(new CultureInfo("en-US"), "{0:c}", text);
then value = "£135"

var value = string.Format(new CultureInfo("en-US", false), "{0:c}", text);
then value = "£135" 

var value = string.Format(new CultureInfo("en-US", false), "{0:c}", "135");
then value = "135"
4

2 に答える 2

3

通貨記号が必要な場合は、おそらくこのようなことを行う必要があります

var s = 135.ToString("C", new CultureInfo("en-US"));

これにより、$135.00 が得られます

ただし、文字列以外の値でしか作業できません。したがって、それらを前後に変換したい場合は、最初に文字列から 10 進数に戻す必要があります。

  var s = 135.ToString("C", new CultureInfo("en-US"));
  //$135.00
  decimal x;
  var tryParse = decimal.TryParse(s, NumberStyles.Currency, new CultureInfo("en-US"), out x);
  var s1 = x.ToString("C", new CultureInfo("fa-IR"));
  //ريال 135/00
于 2013-02-21T17:47:45.430 に答える
1

"£135"これContains Currency Symboldecimal.TryParseシンボルを取得できません..だからそれだけが返されます"0"...

シンボルを使用せずに値を渡そうとすると、機能します....それ以外の場合string.Formatはコードで使用します...

decimal value= 0;
var text = "135";
decimal.TryParse(text, NumberStyles.Any, new CultureInfo("fa-IR"), out value);
于 2013-02-21T17:36:39.023 に答える