Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用类似Android的SkuDetails';getPrice方法_Android_Number Formatting_Android Billing - Fatal编程技术网

使用类似Android的SkuDetails';getPrice方法

使用类似Android的SkuDetails';getPrice方法,android,number-formatting,android-billing,Android,Number Formatting,Android Billing,我试图将浮点数转换为货币字符串,格式与SkuDetail的getPrice方法返回的格式类似,作为参考,它返回的字符串如下所示1234,56 Ft 我试过了 NumberFormat format = NumberFormat.getCurrencyInstance(); format.setCurrency(Currency.getInstance("HUF")); format.format(12345.67) 但它返回huf12345.67 有没有办法达到与get

我试图将浮点数转换为货币字符串,格式与SkuDetail的getPrice方法返回的格式类似,作为参考,它返回的字符串如下所示
1234,56 Ft

我试过了

    NumberFormat format = NumberFormat.getCurrencyInstance();
    format.setCurrency(Currency.getInstance("HUF"));
    format.format(12345.67)
但它返回
huf12345.67


有没有办法达到与getPrice方法类似的结果?

如果您总是希望货币格式符合美国化的期望,请将区域设置保留为locale.US。如果希望货币以本地化方式显示,请保持实现不变。区域设置控制、vs的格式。以及货币符号将出现的位置

   Double number = 1500D;

    // Format currency for Canada locale in Canada locale, 
    // the decimal point symbol is a comma and currency
    // symbol is $.
    NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CANADA);
    String currency = format.format(number);
    System.out.println("Currency in Canada : " + currency);

    // Format currency for Germany locale in German locale,
    // the decimal point symbol is a dot and currency symbol
    // is €.
    format = NumberFormat.getCurrencyInstance(Locale.GERMANY);
    currency = format.format(number);
    System.out.println("Currency in Germany: " + currency);
结果

Currency in Canada : $1,500.00
Currency in Germany: 1.500,00 €
这是另一个答案

如果您总是希望货币格式符合美国化的期望,请将区域设置保留为locale.US。如果希望货币以本地化方式显示,请保持实现不变。区域设置控制、vs的格式。以及货币符号将出现的位置

   Double number = 1500D;

    // Format currency for Canada locale in Canada locale, 
    // the decimal point symbol is a comma and currency
    // symbol is $.
    NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CANADA);
    String currency = format.format(number);
    System.out.println("Currency in Canada : " + currency);

    // Format currency for Germany locale in German locale,
    // the decimal point symbol is a dot and currency symbol
    // is €.
    format = NumberFormat.getCurrencyInstance(Locale.GERMANY);
    currency = format.format(number);
    System.out.println("Currency in Germany: " + currency);
结果

Currency in Canada : $1,500.00
Currency in Germany: 1.500,00 €
这是另一个答案