我的应用包含可以购买的应用内产品。我使用计费 API来检索可以购买的产品列表及其价格。检索到的价格是一个包含货币和价格的格式化字符串,例如“$2.50”。
现在我也使用Google Analytics API来跟踪购买情况。为了发送价格,这个 API 需要一个以微为单位的长参数。所以我应该发送(2.50 * 1000000)。
是否有 API 可以将第一个价格(从 Billing API 检索)转换为第二个价格(发送到 Analytics API)?
当然我可以自己做一个简单的字符串解析转换,但我怕我这样做会出现意外情况。例如,在某些语言环境中,价格会包含“,”而不是“.”。
编辑
一个自然的解决方案是使用 NumberFormat 将“$2.50”转换为 2.50。
Double price = NumberFormat.getCurrencyInstance().parse(priceStr).doubleValue();
但是,从 Google Play 检索到的价格字符串格式显然是手机所在国家/地区的语言环境,但 NumberFormat 会使用手机的语言环境,这不一定相同......