簡體   English   中英

Brokered Windows運行時組件-System.Decimal

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM