Devo integrare la mia applicazione web con un gateway di pagamento. Voglio inserire l'importo totale in USD e quindi convertirlo in Centes come la mia libreria di gateway di pagamento accetta importo in Centesimi (di tipo Integer
). Ho trovato che Big Decimal
in Java è il modo migliore per la manipolazione della valuta. Attualmente prendo ingresso come dire USD 50 e convertirlo in Integer
in questo modo:Qual è il modo migliore per convertire i dollari (Big Decimal) in Cents (Integer) in java?
BigDecimal rounded = amount.setScale(2, BigDecimal.ROUND_CEILING);
BigDecimal bigDecimalInCents = rounded.multiply(new BigDecimal("100.00"));
Integer amountInCents = bigDecimalInCents.intValue();
E 'questo il modo corretto di conversione di dollari per centesimi o dovrei farlo in qualche altro modo?
grazie @weston per i vostri suggerimenti! – nikhilahuja
Questa soluzione non riesce per il valore negativo. Ad esempio, prova -4,56, finirai per ottenere -455. –
@YeshwanthKota testato, non è il caso. Si prega di elaborare. 'System.out.println (usdToCents (BigDecimal.valueOf (-456, 2))); System.out.println (usdToCents (BigDecimal.valueOf (-4.56))); 'entrambi mostrano' -4.56' – weston