This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
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?
Joined: Apr 30, 2002
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.
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.
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.