Glad to know that all of that was of some help, must admit I worried after
reading it back.

If you do ultimately want the number as a String, have you tried getting the
cell value as a double and then formatting it using the formatCellValue()
method yet? You may be lucky and find that the format set for the cell
manages to circumvent some of your problems and of course the
formatCellValue() method returns a String ready for inclusion into the xml
file. The only catch that I can think of is if the user has set a format
that includes - for example - five digits after the decimal point and then
they enter a floating point value with just four digits following the
decimal point.

Getting rid of Office has been a double edged sword in many ways - you would
be surprised how 'exercised' users can be when an operation they performed
with Excel is simply not supported by OpenOffice Calc; just as an example,
you can select many different rows in Excel and delete the lot, Calc will
not alow you to delete a series of non contiguous rows. Lots of fun.


Frank Prins wrote:
> 
> Hello Mark,
> 
> Thank you for your extensive answer, it is getting a bit more clear for
> me now, although I run into difficulties with not being able to
> duplicate the problem.
> 
> It definitively has to do with the float to double conversion here.
> Using getNumericCellValue() sometimes returns me a value not being
> exactly the value entered by the user. For example, I am looking at a
> field in which the user entered the value 7,8268
> This looks like a number with four decimals, but somehow when using
> getNumericCellValue() it shows up as being 7.8267999999999995. Strange
> thing is I cannot duplicate this, when typing the number in myself, it
> keeps showing up like 7.8268, so correct.
> Anyhow, I experimented a bit more with the retrieval of the value, and
> found out I can overcome the above issue when casting to a float, like:
> 
>             double doubleValue = cell.getNumericCellValue();
>             // format the number as floating point:
>             value = String.valueOf((float) doubleValue);
> 
> In this case I get exactly what the user originally used as input.
> BTW, in my code, I indeed do a check on celltype. I tried to copy just
> the part of code necessary for the issue I had...
> Oh, and getting the value as a string.... I am writing the values to an
> XML file, so that's why I took it as a String, no need for further math
> here.
> 
> Thanks,
> Frank
> 
> PS I can only dream of an Office-less office :-)
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Number-Formatting-in-HSSF-tp22408718p22437871.html
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to