I am having trouble converting a long (cents) into currency format.
My Code:
long doublePayment = 1099; //Should equal $10.99
DecimalFormat dFormat = new DecimalFormat();
String formattedString = dFormat.format(doublePayment);
System.out.println(formattedString);
Output: 1,099
I also tried:
long doublePayment = 1099;
NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);
String s = n.format(doublePayment);
System.out.println(s);
Since this is cents, the output should be 10.99 or $10.99.
Cant figure out what I am doing wrong. Thanks!!!
In case You have long to start with, you still should use java.math.BigDecimal.
long doublePayment = 1099;
BigDecimal payment = new BigDecimal(doublePayment).movePointLeft(2);
System.out.println("$" + payment); // produces: $10.99
Let it be once again said out loud: One should never use floating-point variables to store money/currency value.