why does System.out.println(String.format("%.20f", 1.0/3.0)); print
0.33333333333333330000
It should print out 20 3's. How can I fix this
TIA,
ves
Chris Smith - 14 Nov 2005 06:51 GMT
> why does System.out.println(String.format("%.20f", 1.0/3.0)); print
>
> 0.33333333333333330000
>
> It should print out 20 3's. How can I fix this
Floating point numbers have a fixed limited precision, and you're
surpassing it. If you need greater precision, take a look at the
BigDecimal class. Fortunately for you, String.format works just as
easily with BigDecimal as with normal floating point types.

Signature
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
Fabien Bergeret - 14 Nov 2005 10:40 GMT
> why does System.out.println(String.format("%.20f", 1.0/3.0)); print
>
[quoted text clipped - 4 lines]
> TIA,
> ves
Floating point number are always an approximation of real numbers ...
and you've reched the limit of the approximation.
Maybe you should try to use BigDecimal