Discussion:
formula float point problem
何鹏飞
2018-10-10 08:42:51 UTC
Permalink
Hi all,
I use this code
CellValue cellValue = formulaEvaluator.evaluate(cell);
cellValue.getNumberValue();
to evaluate formula in xls. (POI version is 3.9)
and display value is 21.1, but parsed value is 21.099999999999998.
Can I get the same value with the display one ? (I know POI get the 'cached' value in xml, but excel display the different value based on the xml)
Also I want to scale 2 point . but the value will add two o. For example: 3 -> 3.00


please give me some advice.


Best regards£¬
marvin
pj.fanning
2018-10-10 13:50:52 UTC
Permalink
You can use
https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html



--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-***@poi.apache.org
For additional commands, e-mail: user-***@poi.apache.org
Marvin He
2018-10-11 00:49:35 UTC
Permalink
Hi all,
I use this code
CellValue cellValue = formulaEvaluator.evaluate(cell);
cellValue.getNumberValue();
to evaluate formula in xls. (POI version is 3.9)
[Loading Image...@01D4613F.52525B70]
and display value is 21.1, but parsed value is 21.099999999999998.
Can I get the same value with the display one ? (I know POI get the 'cached' value in xml, but excel display the different value based on the xml)
Also I want to scale 2 point . but the value will add two o. For example: 3 -> 3.00

please give me some advice.

Best regards£¬
marvin
pj.fanning
2018-10-11 15:15:38 UTC
Permalink
This is what the DataFormatter class is for - could you try it?



--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-***@poi.apache.org
For additional commands, e-mail: user-***@poi.apache.org
pj.fanning
2018-10-11 15:20:04 UTC
Permalink
You could also use Java DecimalFormat class to format Doubles are Strings
with the decimal precision set. See
https://www.mkyong.com/java/java-display-double-in-2-decimal-points/



--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html

---------------------------------------------------------------------
To unsubscribe, e-mail: user-***@poi.apache.org
For additional commands, e-mail: user-***@poi.apache.org
Greg Woolsey
2018-10-11 15:41:35 UTC
Permalink
Take a look at the documentation for DataFormatter:

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html

there are tons of examples available via web searches, plus the POI unit
test sources.
Post by 何鹏飞
Hi all,
I use this code
CellValue cellValue = formulaEvaluator.evaluate(cell);
cellValue.getNumberValue();
to evaluate formula in xls. (POI version is 3.9)
http://mail.163.com/js6/s?func=mbox:getMessageData&sid=rASZXZvcSBXKmRJLyyccScGTxNPHKMLm&mid=88:1tbiWB-bPluHkST5CAABs7&part=3]
and display value is 21.1, but parsed value is 21.099999999999998.
Can I get the same value with the display one ? (I know POI get the
'cached' value in xml, but excel display the different value based on the
xml)
Also I want to scale 2 point . but the value will add two o. For example: 3 -> 3.00
please give me some advice.
Best regards
marvin
Continue reading on narkive:
Loading...