Forums Register Login

NumberFormat does not show right currency symbol

+Pie Number of slices to send: Send
Hi all,

I want to format a double and display it as a foreign currency. I am using NumberFormat to do this...



Right now this is printing "¤ 1,200.00" in my file, but the symbol for Phillipine Peso is ₱.

Any suggestions? And happy pie day!

Thanks,
Jahan
+Pie Number of slices to send: Send
Are you using a Windows® command line? That has a restricted repertoire of characters it can display at all. Try it on something like a JOptionPane (showMessageDialog()) and see whether that makes any difference.
By they way, why are you using doubles and not BigDecimal for money?
+Pie Number of slices to send: Send
I am running this program within a Tomcat server on Windows. It is writing to a plain text file. Since I am writing to a text file, JOptionPane is not really feasible. Any other suggestions?

And as for the money, I can switch to BigDecimal as you suggested.

Thanks.
+Pie Number of slices to send: Send
 

Jehan Jaleel wrote:I am running this program within a Tomcat server on Windows. It is writing to a plain text file. Since I am writing to a text file, JOptionPane is not really feasible.



Yes it is. You can read from that text file and display in a JOptionPane.

Or you could open that text file with an application and a font that you know can display the character correctly.

You're claiming it's producing the wrong character. Campbell is saying that it may be producing the right character, but that the tool that you're using to view it is interpreting the character incorrectly, or is not capable of displaying the character properly. This could be because the application does not support the encoding or character set, or because the font simply doesn't have a glyph for that character.

Your first step it to determine what character is actually being produced by Java, and viewing that character in a cmd.exe window or in Notepad is not a reliable way to do that.
+Pie Number of slices to send: Send
The problem is that NumberFormat does not support Filipino. '¤' is a default currency symbol for unknown locales.

For a list of supported Locales, see Locale.getAvailableLocales().

A solution is to print the currency symbol directly.
+Pie Number of slices to send: Send
Thanks Stephan, I guess that solves it. Although I was kinda hoping that Java would support all currencies.
1
+Pie Number of slices to send: Send
 

Jehan Jaleel wrote:I want to format a double and display it as a foreign currency. I am using NumberFormat to do this...



I can't help you with the formatting problem, but *never* use double for currency. It will not work when you try to use arithmetic on it.
Use BigInteger, or make a Currency class and store the values as an integer number of pennies, pence, etc.

Double just doesn't work for money.
We noticed he had no friends. So we gave him this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 5284 times.
Similar Threads
Help with currency symbol
Regional settings
Localized Currency formatting issue
Sterling pound symbol not displaying
$ symbol not displayed properly in excel
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 18:35:29.