问题
I want to sum the values of four columns of a recordstore
. The values in these four columns are numbers with the decimal point
, for example 30.00
; the recordstore
row is a csv-like
data with which I use a userdefined function to get the value of a particular column: so I get a String
for the four columns , for example "30.00"
. Now I want to sum
these four values ; so I must convert
them into int
! But when I attempt to use Integer.parseInt
then the java.lang.NumberFormatException
is raised ! So how to make the sum in this situation ?
回答1:
Even though 30.00
seems like an integer to you, Java thinks it looks like a floating point value (due to the decimal point).
You therefore need to parse it as a double, and then get the integer part.
int i = Double.parseDouble("30.00").intValue();
(Not J2ME specific by the way.)
回答2:
If your numbers contain decimal points, you need to parse as a double.
Double.parseDouble("30.00");
From there you can use Math
methods or just truncate to get your Integer.
回答3:
Just as another alternative, you could also use Integer.parseInt("30.00".split("\\.")[0])
This would remove dependency on decimal separator (if you always have a dot in string, but you have no control on locale it will be parsed on.
来源:https://stackoverflow.com/questions/9214004/why-integer-parseint-of-a-string-representing-a-number-throws-java-lang-numberfo