我想要保存所有貨幣兌換不同基礎貨幣的匯率。什麼是最好的和有效的類型或結構來保存它們。目前我正在使用以C存儲ROE的最佳方式#
Dictionary<string, Dictionary<string, decimal>>();
在此先感謝。請建議
我想要保存所有貨幣兌換不同基礎貨幣的匯率。什麼是最好的和有效的類型或結構來保存它們。目前我正在使用以C存儲ROE的最佳方式#
Dictionary<string, Dictionary<string, decimal>>();
在此先感謝。請建議
通常我使用以下類的變體。
public ForexSpotContainer : IEnumerable<FxSpot>
{
[DataMember] private readonly Dictionary<string, FxSpot> _fxSpots;
public FxSpot this[string baseCurrency, string quoteCurrency]
{
get
{
var baseCurrencySpot = _fxSpots[baseCurrency];
var quoteCurrencySpot = _fxSpots[quoteCurrency];
return baseCurrencySpot.Invert()*quoteCurrencySpot;
}
}
public IEnumerator<FxSpot> GetEnumerator()
{
return _fxSpots.Values.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
我傾向於然後創建一個Money
類和FxSpot
類,然後創建+ - * /運營商的金錢和FxSpot類,這樣我可以做在一個安全的方式財務計算。
編輯:我我的經驗,在金融系統工作時,我一直與代碼問題這樣
decimal sharePriceOfMsft = 40.30m;
decimal usdEur = 0.75m;
decimal msftInEur = sharePriceOfMsft * usdEur;
因爲它總是需要幾秒鐘,我要檢查,如果我要乘點或劃分。
當我必須使用ForexErosses(如JPYEUR或EURJPY等)時,問題會複雜化,並且小時數會由於接近外匯點的字幕錯誤而丟失。
另外,結果是方程的量綱分析。當你將多個數字拼湊在一起,並且你期望有一個價格時,你確定你沒有搞亂一個多重分割。通過爲每個單元創建一個新的類,您可以進行更多的編譯時錯誤檢查,最終可以爲讀取的每行代碼節省幾秒鐘的時間(在數千行庫中會快速添加幾個小時)。
你能否向我解釋一下,我該如何使用它或者我會得到什麼好處。 – Rohit
看起來不錯,你有什麼問題嗎? – nvoigt
只是尋找比詞典更好的選擇。 – Rohit
請描述您的「更好」的指標。我傾向於在其他方面優化可讀性。 – Aron