converting from BigDecimal to BigInteger

Discussion in 'Java' started by Jeremy Watts, Feb 17, 2007.

  1. Jeremy Watts

    Jeremy Watts Guest

    I am trying to convert a BigDecimal number to a BigInteger one. I have
    truncated the number to its nearest whole integer firstly, before converting
    it to a string and then converting that to a BigInteger.... but the
    compilers coming back with an error message "Number Format Exception".

    Cant see what I'm doing wrong here... The number I'm using for the
    BigDecimal is
    '465836768828.000' . Is it the ".000" bit thats messing things up here?
    How would I remove that so that I'm left with 465836768828 ?

    Or is there a better way of converting between the two?

    Thanks
    Jeremy Watts, Feb 17, 2007
    #1
    1. Advertising

  2. Jeremy Watts wrote:

    > Or is there a better way of converting between the two?


    RTFM[1]

    BigInteger bi = mybigdecimal.toBigInteger();


    Regards, Lothar

    [1] http://java.sun.com/j2se/1.3/docs/api/java/math/BigDecimal.html
    --
    Lothar Kimmeringer E-Mail:
    PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)

    Always remember: The answer is forty-two, there can only be wrong
    questions!
    Lothar Kimmeringer, Feb 17, 2007
    #2
    1. Advertising

  3. Jeremy Watts

    Jeremy Watts Guest

    "Lothar Kimmeringer" <> wrote in message
    news:...
    > Jeremy Watts wrote:
    >
    > > Or is there a better way of converting between the two?

    >
    > RTFM[1]
    >
    > BigInteger bi = mybigdecimal.toBigInteger();


    hee hee that simple eh? :) I'm sure I'd done this before somewhere
    without converting to strings first... anyway thanks

    >
    >
    > Regards, Lothar
    >
    > [1] http://java.sun.com/j2se/1.3/docs/api/java/math/BigDecimal.html
    > --
    > Lothar Kimmeringer E-Mail:
    > PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)
    >
    > Always remember: The answer is forty-two, there can only be wrong
    > questions!
    Jeremy Watts, Feb 17, 2007
    #3
  4. Jeremy Watts wrote:
    > I am trying to convert a BigDecimal number to a BigInteger one. I have
    > truncated the number to its nearest whole integer firstly, before converting
    > it to a string and then converting that to a BigInteger.... but the
    > compilers coming back with an error message "Number Format Exception".
    >
    > Cant see what I'm doing wrong here... The number I'm using for the
    > BigDecimal is
    > '465836768828.000' . Is it the ".000" bit thats messing things up here?
    > How would I remove that so that I'm left with 465836768828 ?


    Yes, the "." is not a permitted character: "The String representation
    consists of an optional minus sign followed by a sequence of one or more
    decimal digits."

    >
    > Or is there a better way of converting between the two?


    I half agree with the toBigInteger suggestion. If you expect your
    BigDecimal to always be an integer, you could use toBigIntegerExact,
    which throws an exception on data loss.

    Patricia
    Patricia Shanahan, Feb 17, 2007
    #4
  5. Patricia Shanahan wrote:

    > I half agree with the toBigInteger suggestion. If you expect your
    > BigDecimal to always be an integer, you could use toBigIntegerExact,
    > which throws an exception on data loss.


    He didn't mention the Version of Java the program should work.
    toBigIntegerExact exists since 1.5.


    Regards, Lothar
    --
    Lothar Kimmeringer E-Mail:
    PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)

    Always remember: The answer is forty-two, there can only be wrong
    questions!
    Lothar Kimmeringer, Feb 17, 2007
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. nick
    Replies:
    0
    Views:
    896
  2. nick
    Replies:
    1
    Views:
    31,763
    Eric Sosman
    Oct 26, 2004
  3. Jeremy Watts

    converting BigDecimal to BigInteger

    Jeremy Watts, Jun 28, 2005, in forum: Java
    Replies:
    2
    Views:
    12,628
    Roedy Green
    Jun 28, 2005
  4. Replies:
    3
    Views:
    1,223
  5. Stanimir Stamenkov
    Replies:
    4
    Views:
    2,583
    Stanimir Stamenkov
    Jul 18, 2008
Loading...

Share This Page