Re: number conversion
On 29.08.2011 20:01, mamta81 wrote:
when i give checkNumber( 33333335.2534566d); as input i get the
following o/p
number ------------------->3.33333352534566E7
n3.33333352534566E7
Is a decimal number
index1
dec 33333352534566E7
only 6 digits allowed after decimal
num 3
1) what happens to my input for which I get a wrong index of ". "?
But you *did* get the correct index.
2) Is there any other way to find the number of digits before and
after decimal?
I don't know. You can try by first formatting the String the way you
expect it to be shown, which also includes defining the maximum number
of fraction digits.
For example:
public void checkNumber(double number) {
// UK locale definitely has "." symbol for decimal point
NumberFormat nf = NumberFormat.getInstance(Locale.UK);
nf.setGroupingUsed(false); // don't group digits
nf.setMaximumFractionDigits(MAX_FRACTION_DIGITS);
String numberString = nf.format(number);
String[] nsArray = numberString.split("\\.");
System.out.println("Before decimal point: " + nsArray[0].length());
System.out.println("After decimal point: " + nsArray[1].length());
}
This will work as expected most of the time. :) To see when and why it
won't work as expected, read some literature about floating point numbers.
And now please answer this. Why are you trying to do that? What's the
underlying reason?