获取应用内商品的价格为双倍

时间:2018-06-09 11:21:43

标签: c# uwp windows-store-apps windows-store

如何从c#代码中获取消费品的价格?我需要将它作为double,但StorePrice对象似乎只提供FormattedPrice作为字符串(例如“42,00 $”):

var storeProducts = await this.storeContext.GetStoreProductsAsync(new[] { "UnmanagedConsumable" }, new[] { "xyz" });
var iap = storeProducts.Products["xyz"];
var price = iap.Price;
price.FormattedPrice ...

我需要将价格提高一倍,以便我可以计算出一个IAP与另一个相比便宜多少。

看起来我必须解析格式化字符串中的金额,但这只是感觉很愚蠢。还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

没有API将价格作为纯数提供。我认为解析字符串不是最糟糕的解决方案,您可以使用NumberStyles.Currency来简化:

decimal d = decimal.Parse(price.FormattedPrice, NumberStyles.Currency);

但是,您需要确保实际上正在解析正确文化下的字符串,以便Parse方法可以处理它。当解析失败时,您当然也应该将它包装在异常处理程序中以获得备用解决方案。

货币应与用户当前的区域设置相匹配。您可以使用GlobalizationRegion

来获取此信息
var geographicRegion = new Windows.Globalization.GeographicRegion();
var code = geographicRegion.CodeTwoLetter;