相关疑难解决方法(0)

未获取特定区域设置的货币符号

我试图根据他们的Locale获取货币的符号.但它没有返回符号,而是返回代码.我有一个片段:

import java.util.Currency;
import java.util.Locale;

public class CurrencyFormat
{
  public void displayCurrencySymbols() 
  {
   Currency currency = Currency.getInstance(Locale.US); 
   System.out.println("United States: " + currency.getSymbol());
  } 
  public static void main(String[] args)
  {
    new CurrencyFormat().displayCurrencySymbols();
  }
}
Run Code Online (Sandbox Code Playgroud)

对于Locale.US,它给出符号$但是如果我替换

Currency currency = Currency.getInstance(Locale.US); 
Run Code Online (Sandbox Code Playgroud)

Currency currency = Currency.getInstance(Locale.GERMANY); 
Run Code Online (Sandbox Code Playgroud)

然后代替符号,它给出了国家代码.为什么这样以及我们如何获得符号?

编辑:在看了一些答案后,我想清楚设置一些特定的默认本地不是解决方案,因为我需要一次显示所有可用的符号.

例如

 Locale.setDefault(Locale.UK); 
Run Code Online (Sandbox Code Playgroud)

将给我欧元符号,但对于doller它将给代码而不是doller sign($).

java locale localization currency

21
推荐指数
2
解决办法
2万
查看次数

如何从 Play 结算库获取货币符号

我用了Play Billing Library两个subscriptions,一个三个月。对于3按月订阅,我想显示当月的价格1。\n例如,按月1订阅是$1,503按月订阅是$3($1对于1)。但我对货币有一些问题。

\n

这是一个code:

\n
long priceAmountMicros = skuDetails.getPriceAmountMicros(); //3000000\nString priceCurrency = skuDetails.getPriceCurrencyCode(); //USD\n\nfloat priceFloat = (float)priceAmountMicros / 3 / 1000000; //1\nString price = new DecimalFormat("#0.00").format(priceFloat);\n\nCurrency currency = Currency.getInstance(priceCurrency);\nString symbolCurrency = currency.getSymbol();//$\n\ntextView.setText(price + " " + symbolCurrency); //1.00 $ or 70.00 \xd1\x80\xd1\x83\xd0\xb1\n
Run Code Online (Sandbox Code Playgroud)\n

该代码几乎可以工作。美元兑换成美元欧元转换为\xc2\xa3等。某些货币存在一些问题,例如俄罗斯货币无法使用。RUB转换为\xd1\x80\xd1\x83\xd0\xb1,但我期望\xe2\x82\xbd

\n …

android in-app-billing

10
推荐指数
2
解决办法
2372
查看次数

标签 统计

android ×1

currency ×1

in-app-billing ×1

java ×1

locale ×1

localization ×1