Solved

Casting doubles to integer problem

Posted on 2003-11-23
5
483 Views
Last Modified: 2010-03-31
Hiya

I have a small problem when trying to cast a double precision number to an integer:  

When I input a double number into my program (its a command line program) I want to immediatly multiply it by 100 and convert it to an integer.  The user should always be inputing numbers with no more than 2 decimal places as it will always be an amount of money.  

Basically it usually works for most numbers, but certain numbers such as 19.99 gets converted to 1998 (or 1998.99999999999 when I output the multipled double).  

I was just wondering if there was a simple fix for this.
0
Comment
Question by:antt
  • 2
  • 2
5 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 9806260
The manipulation of floating point values is constrained by degrees of precision - they frequently therefore end up as approximations. For arbitrary precision, use the BigDecimal class:

    String s = "19.99";
    double d = Double.parseDouble(s);
    System.out.println(s + " (parseDouble) -> " + d * 100);
    BigDecimal bd = new BigDecimal(s);
    d = bd.doubleValue();
    System.out.println(s + " (BigDecimal) -> " + d);
0
 
LVL 15

Expert Comment

by:JakobA
ID: 9806630
double d = Double.parseDouble("19.99");
int cents = Math.round( d * 100 );
0
 
LVL 15

Accepted Solution

by:
JakobA earned 25 total points
ID: 9806636
Oops. it needs an explicit cast:
int cents = (int)Math.round( d * 100 );
0
 

Author Comment

by:antt
ID: 9809882
dammit still doesnt work
0
 

Author Comment

by:antt
ID: 9809896
oh wait yes it does

i cant count
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Apps blocked by Java 9 88
Maven Project: Hibernate Dependencies Conflict 10 37
javap not working 8 57
Opening PDF on button click and fill new document 2 47
For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

791 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question