Fast double to string conversion with given precision

前端 未结 4 1123
遥遥无期
遥遥无期 2021-02-02 17:14

I need to convert double to string with given precision. String.format(\"%.3f\", value) (or DecimalFormat) does the job but benchmarks show that it slow even in com

4条回答
  •  清歌不尽
    2021-02-02 17:33

    To my knowledge the fastest and most complete implementation is that of Jack Shirazi:

    http://web.archive.org/web/20150623133220/http://archive.oreilly.com/pub/a/onjava/2000/12/15/formatting_doubles.html

    Code: Original implementation is no longer available online (http://archive.oreilly.com/onjava/2000/12/15/graphics/DoubleToString.java). An implementation can be found here: https://raw.githubusercontent.com/openxal/openxal/57392be263b98565738d1962ba3b53e5ca60e64e/core/src/xal/tools/text/DoubleToString.java

    It provides formatted (number of decimals) and unformatted doubleToString conversion. My observation is, that the JDK performance of unformatted conversion dramatically improved over the years, so here the gain is not so big anymore.

    For formatted conversion it still is.

    For benchmarkers: It often makes a big difference which kind of doubles are used, e.g. doubles very close to 0.

提交回复
热议问题