gpt4 book ai didi

java - 从 double 中删除 '.0',但保留所有其他可能性

转载 作者:行者123 更新时间:2023-12-02 13:31:43 25 4
gpt4 key购买 nike

我在 Stackoverflow 上看到了很多关于在 double 之后隐藏 .0 的问题,但每个答案都说要使用 DecimalFormat 并执行 #.# 隐藏它。但这不是我想要的。

对于 double 不以 .0 结尾的每一种可能性,我希望它们保持原样。除非它以 .0 结尾,否则将其删除。换句话说,我想始终保持精度,除非它以 .0 结尾。

示例:

0.0000000000000000042345470000230 -> 0.0000000000000000042345470000230
0.4395083451 -> 0.4395083451
46547453.00024235 -> 46547453.00024235

435.0 -> 435

有什么办法可以实现这个目标吗?

进一步的例子:

这个问题here有我正在谈论的答案类型:

Use DecimalFormat

double answer = 5.0;
DecimalFormat df = new DecimalFormat("###.#");
System.out.println(df.format(answer));

上面的 ###.# 意味着我将显示前 3 位数字、一个句点,然后是其后的第一个数字。无论我的值如何,只有第一个小数会被格式化。

最佳答案

事实上,它一点也不复杂。只需检查一下(它甚至可以为您提供最精确的数字):

//Square root of 5 will give you a lot of decimals    
BigDecimal d1 = new BigDecimal(sqrt(5));
//5 will give you none
BigDecimal d2 = new BigDecimal(5);
//Print and enjoy
System.out.println(d1.stripTrailingZeros());
System.out.println(d2.stripTrailingZeros());

stripTrailingZeros() 将删除任何纯 0 的尾迹,但如果存在其他数字,则保留格式。

关于java - 从 double 中删除 '.0',但保留所有其他可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com