Java除以double和float而不用E.

hai*_*adi -1 java floating-point double

我正在做一些大数除法(long/long加倍,而int/int浮动).但是当结果包含"E"时,我碰到了问题.我知道我们可以在显示时使用NumberFormat进行格式化,但这不是我的意思.只是希望分区的结果不涉及"E",即只需将其四舍五入到最适合空间的float/double.

有人有个主意吗?

msi*_*msi 6

浮点数的内部表示没有E存在的开关(检查IEEE-754).所以你的浮点数/双数只是数字(不是带E或不带数字的数字).

获得E的唯一地方就是打印出这个值.虽然Java使用数字格式化器进行打印,但我没有看到为什么你不想在这里使用它.

System.out.println(new DecimalFormat("#.#####").format(doubleValue)); 
Run Code Online (Sandbox Code Playgroud)