Надлежащий формат валюты, если не отображающий собственную валюту культуры

Ссылка на псевдоним таблицы uh в списке выбора представляет собой полную строку из таблицы useridhash и создает один столбец, который является записью типа useridhash. Если вы хотите увидеть отдельные столбцы, используйте uh.*

Скорее всего, вы также не хотите uh в order by:

SELECT shop, user_id, uh.*
FROM public.matched
   JOIN useridhash uh ON uh.id = public.matched.id
GROUP BY shop, user_id, uh.id --<< change this to the column you want to sort by
15
задан Jamie Horgan 12 May 2009 в 00:41
поделиться

2 ответа

Здесь нет абсолютных правил, но есть пара руководящих принципов:

  1. Попробуйте использовать числовой формат для этого языкового стандарта (например, 1000,00 в США будет отображаться как 1'000,00 в Германия);
  2. Помните, что разные валюты могут использовать один и тот же символ (например, доллар используется в австралийских и американских долларах) и что существует много символов валюты ;
  3. Если ваш сайт «одинарный» валюта, тогда просто используйте правильный символ для этой валюты. Под этим я подразумеваю такие сайты, как Amazon, туристические сайты, сайты покупок и так далее. Эти сайты являются единой валютой в том смысле, что они по одной валюте за раз . Например, они не будут одновременно отображать малазийские рингиты и сингапурские доллары; и
  4. Если ваш сайт мультивалютный, вообще не используйте этот символ: используйте международный стандартный трехбуквенный код валюты, как определено в ISO 4217 названия валют и элементы кода . Такие сайты, как xe.com, попадают в эту категорию.
29
ответ дан 1 December 2019 в 02:20
поделиться

Если вы всегда хотите отображать символ, то вот утилита класса:

public class Utils {

    public static SortedMap<Currency, Locale> currencyLocaleMap;

    static {
        currencyLocaleMap = new TreeMap<Currency, Locale>(new Comparator<Currency>() {
            @Override
            public int compare(Currency c1, Currency c2) {
                return c1.getCurrencyCode().compareTo(c2.getCurrencyCode());
            }
        });

        for (Locale locale : Locale.getAvailableLocales()) {
            try {
                Currency currency = Currency.getInstance(locale);
                currencyLocaleMap.put(currency, locale);
            }
            catch (Exception e) {
            }
        }
    }


    public static String  getAmountAsFormattedString(Double amount, Double decimals, String currencyCode) {
        Currency currency = Currency.getInstance(currencyCode);
        double doubleBalance = 0.00;
        if (amount != null) {
            doubleBalance = ((Double) amount) / (Math.pow(10.0, decimals));
        }
        NumberFormat numberFormat = NumberFormat.getCurrencyInstance(currencyLocaleMap.get(currency));
        return numberFormat.format(doubleBalance);
    }

    public static String getCurrencySymbol(String currencyCode) {
        Currency currency = Currency.getInstance(currencyCode);
        return currency.getSymbol(currencyLocaleMap.get(currency));
    }


}
0
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: