2017-05-25 64 views
0

我正在尋找一個選項,如果我可以將可空的十進制值轉換爲貨幣,而我正在做我的c#代碼中的數據轉換。我看到了關於轉換的多個問題,但我沒有得到我想要完成的任務。到目前爲止,我已經做了下面的工作,並且在moneyvalue下給我紅色下劃線。當我徘徊在它時,它抱怨說「不能從字符串轉換爲十進制?」如何在進行DataConversion時將十進制值轉換爲C#中的美元貨幣值?

decimal? value = DataConversion.GetNullableDecimal(row["Price"]); 
string moneyvalue= String.Format("{0:c}", value); 

results.Add(new ProductSearchResult(
     product: product, 
     msrp: moneyvalue, 
     vendornumber: DataConversion.GetString(row["vendor"]) 
)); 

請建議。

+0

如果你的「紅色下劃線」是msrp:moneyvalue,那麼就使用「value」。在我看來,只要你「顯示」搜索結果,你應該稍後轉換。 –

+0

@IvayloStoev:這給了我十進制的結果,但我需要美元的金錢價值。如$ 120.90 – toofaced

+0

如果ProductSearchResult構造函數需要小數點,則不需要美元貨幣值。要麼更改構造函數,要麼在稍後將實際值顯示給用戶時進行轉換 –

回答

0

如果您的建議零售價是類型小數則:

if(value.HasValue){ 
    results.Add(new ProductSearchResult(
     product: product, 
     msrp: value.Value 
    )); 
} 

如果你的建議零售價是類型十進制的?然後就assing值:

results.Add(new ProductSearchResult(
    product: product, 
    msrp: value 
)); 

和格式$應該做的事,你顯示的值。您的結構ProductSearchResult如果需要十進制,則不會接受貨幣。

+0

如果你想永遠擁有產品結果,即使沒有價值,這可能是錯誤的 –

相關問題