Package org.apache.poi.ss.util
Class NumberToTextConverter
- java.lang.Object
-
- org.apache.poi.ss.util.NumberToTextConverter
-
public final class NumberToTextConverter extends Object
Excel converts numbers to text with different rules to those of java, soDouble.toString(value)
won't do.- No more than 15 significant figures are output (java does 18).
- The sign char for the exponent is included even if positive
- Special values (
NaN
andInfinity
) get rendered like the ordinary number that the bit pattern represents. - Denormalised values (between ±2-1074 and ±2-1022 are displayed as "0"
IEEE 64-bit Double Rendering Comparison Raw bits Java Excel 0x0000000000000000L 0.0 0 0x3FF0000000000000L 1.0 1 0x3FF00068DB8BAC71L 1.0001 1.0001 0x4087A00000000000L 756.0 756 0x401E3D70A3D70A3DL 7.56 7.56 0x405EDD3C07FB4C99L 123.45678901234568 123.456789012346 0x4132D687E3DF2180L 1234567.8901234567 1234567.89012346 0x3EE9E409302678BAL 1.2345678901234568E-5 1.23456789012346E-05 0x3F202E85BE180B74L 1.2345678901234567E-4 0.000123456789012346 0x3F543A272D9E0E51L 0.0012345678901234567 0.00123456789012346 0x3F8948B0F90591E6L 0.012345678901234568 0.0123456789012346 0x3EE9E409301B5A02L 1.23456789E-5 0.0000123456789 0x3E6E7D05BDABDE50L 5.6789012345E-8 0.000000056789012345 0x3E6E7D05BDAD407EL 5.67890123456E-8 5.67890123456E-08 0x3E6E7D06029F18BEL 5.678902E-8 0.00000005678902 0x2BCB5733CB32AE6EL 9.999999999999123E-98 9.99999999999912E-98 0x2B617F7D4ED8C59EL 1.0000000000001235E-99 1.0000000000001E-99 0x0036319916D67853L 1.2345678901234578E-307 1.2345678901235E-307 0x359DEE7A4AD4B81FL 2.0E-50 2E-50 0x41678C29DCD6E9E0L 1.2345678901234567E7 12345678.9012346 0x42A674E79C5FE523L 1.2345678901234568E13 12345678901234.6 0x42DC12218377DE6BL 1.2345678901234567E14 123456789012346 0x43118B54F22AEB03L 1.2345678901234568E15 1234567890123460 0x43E56A95319D63E1L 1.2345678901234567E19 12345678901234600000 0x441AC53A7E04BCDAL 1.2345678901234568E20 1.23456789012346E+20 0xC3E56A95319D63E1L -1.2345678901234567E19 -12345678901234600000 0xC41AC53A7E04BCDAL -1.2345678901234568E20 -1.23456789012346E+20 0x54820FE0BA17F46DL 1.2345678901234577E99 1.2345678901235E+99 0x54B693D8E89DF188L 1.2345678901234576E100 1.2345678901235E+100 0x4A611B0EC57E649AL 2.0E50 2E+50 0x7FEFFFFFFFFFFFFFL 1.7976931348623157E308 1.7976931348623E+308 0x0010000000000000L 2.2250738585072014E-308 2.2250738585072E-308 0x000FFFFFFFFFFFFFL 2.225073858507201E-308 0 0x0000000000000001L 4.9E-324 0 0x7FF0000000000000L Infinity 1.7976931348623E+308 0xFFF0000000000000L -Infinity 1.7976931348623E+308 0x441AC7A08EAD02F2L 1.234999999999999E20 1.235E+20 0x40FE26BFFFFFFFF9L 123499.9999999999 123500 0x3E4A857BFB2F2809L 1.234999999999999E-8 0.00000001235 0x3BCD291DEF868C89L 1.234999999999999E-20 1.235E-20 0x444B1AE4D6E2EF4FL 9.999999999999999E20 1E+21 0x412E847FFFFFFFFFL 999999.9999999999 1000000 0x3E45798EE2308C39L 9.999999999999999E-9 0.00000001 0x3C32725DD1D243ABL 9.999999999999999E-19 0.000000000000000001 0x3BFD83C94FB6D2ABL 9.999999999999999E-20 1E-19 0xC44B1AE4D6E2EF4FL -9.999999999999999E20 -1E+21 0xC12E847FFFFFFFFFL -999999.9999999999 -1000000 0xBE45798EE2308C39L -9.999999999999999E-9 -0.00000001 0xBC32725DD1D243ABL -9.999999999999999E-19 -0.000000000000000001 0xBBFD83C94FB6D2ABL -9.999999999999999E-20 -1E-19 0xFFFF0420003C0000L NaN 3.484840871308E+308 0x7FF8000000000000L NaN 2.6965397022935E+308 0x7FFF0420003C0000L NaN 3.484840871308E+308 0xFFF8000000000000L NaN 2.6965397022935E+308 0xFFFF0AAAAAAAAAAAL NaN 3.4877119413344E+308 0x7FF80AAAAAAAAAAAL NaN 2.7012211948322E+308 0xFFFFFFFFFFFFFFFFL NaN 3.5953862697246E+308 0x7FFFFFFFFFFFFFFFL NaN 3.5953862697246E+308 0xFFF7FFFFFFFFFFFFL NaN 2.6965397022935E+308 - Conversion to string (as handled here)
- Rendering numerical quantities in the cell grid.
- Conversion from text
- General arithmetic
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
toText(double value)
Converts the suppliedvalue
to the text representation that Excel would give if the value were to appear in an unformatted cell, or as a literal number in a formula.
Note - the results from this method differ slightly from those ofDouble.toString()
In some special cases Excel behaves quite differently.static String
toText(double value, Locale locale)
-
-
-
Method Detail
-
toText
public static String toText(double value)
Converts the suppliedvalue
to the text representation that Excel would give if the value were to appear in an unformatted cell, or as a literal number in a formula.
Note - the results from this method differ slightly from those ofDouble.toString()
In some special cases Excel behaves quite differently. This function attempts to reproduce those results.
-
-