【发布时间】:2011-01-26 13:04:51
【问题描述】:
class FxRate {
string Base { get; set; }
string Target { get; set; }
double Rate { get; set; }
}
private IList<FxRate> rates = new List<FxRate> {
new FxRate {Base = "EUR", Target = "USD", Rate = 1.3668},
new FxRate {Base = "GBP", Target = "USD", Rate = 1.5039},
new FxRate {Base = "USD", Target = "CHF", Rate = 1.0694},
new FxRate {Base = "CHF", Target = "SEK", Rate = 8.12}
// ...
};
鉴于所有货币至少出现一次(作为目标货币或基础货币)的大量但不完整的汇率列表:我将使用什么算法来得出未直接列出的交易所的汇率?
我正在寻找以下形式的通用算法:
public double Rate(string baseCode, string targetCode, double currency)
{
return ...
}
在上面的示例中,派生汇率将是 GBP->CHF 或 EUR->SEK(这需要使用 EUR->USD、USD->CHF、CHF->SEK 的转换)
虽然我知道如何手动进行转换,但我正在寻找一种简洁的方法(可能使用 LINQ)来执行这些派生转换,可能涉及多个货币跃点,但最好的方法是什么?
【问题讨论】:
-
Base -> Target转换是否意味着Target -> Base在1 / Rate的转换?