[英]Brokered Windows Runtime Component - System.Decimal
我收到編譯器錯誤:
“方法xxx的參數值類型為“ System.Decimal”。“ System.Decimal”不是有效的Windows運行時,必須僅返回Windows Runtime類型。
無論如何,我可以使用小數嗎? 還是應該將值存儲為整數?
我發現最簡單的解決方案是將其存儲為整數。
我認為這可能不適用於世界上所有的貨幣,但我只擔心美元,因此在這種特定情況下這不是問題。
另一種方法是實現“金錢”模式-http://martinfowler.com/eaaCatalog/money.html
實際上,我發現最簡單的方法是對WinRT組件的返回值和參數使用double
。
這就是我的C#類庫中的內容
public static double Round(double value, int digits)
{
// do stuff
}
這是我創建的C#Windows運行時可移植類庫的代碼,作為包裝程序,可從我的JavaScript代碼中調用
public static double Round(double val, int digits)
{
return MyCSharpClassLib.Class.Round(val, digits);
}
在我的JavaScript項目中,這就是我所說的
var round = WindowsRuntimeWrapper.Class1.round(3.1415926549, 3);
而且效果很好!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.