Мое приложение содержит встроенные продукты, которые можно приобрести. Я использую биллинговый API для получения списка продуктов, которые можно приобрести. и их цены. Полученная цена представляет собой форматированную строку, содержащую как валюту, так и цену, например "2,50 доллара США".
Теперь я также использую API Google Analytics для отслеживания покупок. Для отправки цены этот API принимает параметр long в микро. Так что я должен отправить (2,50 * 1000000).
Есть ли API для преобразования первой цены (полученной из Billing API) во вторую (для отправки в Analytics API)?
Конечно, я мог бы сделать простое преобразование синтаксического анализа String самостоятельно, но я боюсь неожиданных случаев, если я это сделаю. Например, в некоторых регионах цена будет содержать «,» вместо «.».
Изменить
Естественным решением было бы использовать NumberFormat для преобразования из «2,50 доллара» в 2,50.
Double price = NumberFormat.getCurrencyInstance().parse(priceStr).doubleValue();
Однако формат строки цены, полученный из Google Play, по-видимому, соответствует языковому стандарту страны, в которой находится телефон, но NumberFormat будет использовать языковой стандарт телефона, который не обязательно совпадает...