Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Strange Result

 
Shaan Shar
Ranch Hand
Posts: 1249
Java Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


Instead of showing 0.90 it's showing 0.8999999999999999. Could anyone give the reason.
 
Henry Wong
author
Marshal
Pie
Posts: 20892
75
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
See point 23 of the Beginner's FAQ for an explanation.

Henry
 
Tom Fulton
Ranch Hand
Posts: 96
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's because of the binary representation of a double, which holds up to 15 digits of precision.

You can get the result you want in at least two ways:

1. Convert the literals from a double to a float (4 bytes instead of 8, and roughly 7 digits of precision), as follows:



2. Format the result to print the number of digits you want, which will round appropriately, as follows:

import java.text.DecimalFormat;



For further information and examples, Google "Number Format Java"
[ April 12, 2006: Message edited by: Tom Fulton ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic