-1

Visual Studio 2010、Windowsフォームを使用しています。

私はこのコードを持っています。これは、お金を米ドルからユーロに変換することを許可します。これは参照です:http://www.codeproject.com/Articles/17909/Simple-Class-to-get-Currency-Exchange-Rates

これはコードです:

CurrencyConverter2 cc = new CurrencyConverter2();
cc.AdjustToLocalTime = true;

CurrencyData cd = new CurrencyData("USD", "EUR");
// Convert US Dollars to Euros

cc.GetCurrencyData(ref cd);

label5.Text = (5000 / cd.Rate).ToString();

この場合の出力は:3753,75375375375

しかし、次のようにtexboxから値(例5000)を配置すると、次のようになります。

double cambiamo = double.Parse(tbxDaConvertire.Text);
tbxConvertito.Text = (cambiamo * cd.Rate).ToString();

出力は:3752,5

私はこの値を取得しているので、私は理解していません!どうすれば解決できますか?

4

2 に答える 2

3

コメントが指摘しているように:

        double cdRate = 1.42f;

        var value1 = (5000 / cdRate).ToString();
        var value2 = (double.Parse("5000") / cdRate).ToString();
        var value3 = (5000.0f / cdRate).ToString();

        //    value1 = "3521.12686697913"
        //    value2 = "3521.12686697913"            
        //    value3 = "3521.12686697913"

CDレートが異なる可能性があります。最初の例では最初に使用5000 / cd.Rateし、2番目の例では使用します5000 * cd.Rate-いつか実行しましたcd.Rate = 1/cd.Rateか?それは矛盾が生じているところかもしれません。

于 2013-01-18T14:42:20.253 に答える
1

最初のコンバージョンでは、0.75075のコンバージョン率を使用しました

2回目のコンバージョンでは、0.75050のコンバージョン率を使用しました

わずか0.00025の違いで、先週のコンバージョン率のこのグラフで簡単にわかります。

ここに画像の説明を入力してください

極端なボラティリティに注意してください。レートは数で変化します。言い換えれば、コードを編集している間に変更されました。明らかに、通貨換算サービスからライブアップデートを取得しています。

于 2013-01-18T14:57:19.253 に答える