Hello, For the geometry IO work I did recently, I ended up creating a DoubleFormats [1] utility class that generates formatters for various floating point string representations. It creates formatters for plain (straight decimal), scientific, engineering, and mixed plain and scientific formats. A maximum number of significant decimal digits and a minimum exponent value can be specified for each format. Here is a simple example:
int maxPrecision = 4; DoubleFormat plain = DoubleFormats.createPlain(maxPrecision); plain.format(Math.PI); // 3.142 plain.format(-123456789); // -123500000.0 plain.format(1.23456789e-6); // 0.000001235 DoubleFormat eng = DoubleFormats.createEngineering(maxPrecision); eng.format(Math.PI); // 3.142 eng.format(-123456789); // -123.5E6 eng.format(1.23456789e-6); // 1.235E-6 I currently have the methods returning a DoubleFormat functional interface but I plan on changing this to simply DoubleFunction<String>. Is there any interest in moving this functionality to commons-text? I find it quite useful since it is thread-safe and much faster than using String.format or similar. I've actually created a class with much the same functionality for use in my day job. It would be nice if I could use something from commons for that. Regards, Matt J [1] https://github.com/apache/commons-geometry/blob/master/commons-geometry-io-core/src/main/java/org/apache/commons/geometry/io/core/utils/DoubleFormats.java