Java 格式 double 到特定位数忽略零

标签 java format double

我想将一些 double 值格式化为特定位数,忽略起始零。

例如,假设格式为 6 位数字:

131.468627436358  ->  131.469
3.16227766016838  ->  3.16228
0.66018099039325  ->  0.660181
0.02236067977499  ->  0.0223607

最佳答案

BigDecimal 允许正确处理有效数字。这:

MathContext round3SigFig = new MathContext(3,RoundingMode.HALF_UP);
System.out.println((new BigDecimal(0.000923874932)).round(round3SigFig));

产生:

0.000924

显然,通过任意精度对象表示传递浮点并不理想。

关于Java 格式 double 到特定位数忽略零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10271629/

相关文章:

java - 将日期类型数组中的格式转换为不同的日期格式?

c - 读取 double 值在 C 中的内存监视中产生不完全相同的值

java - BeanPropertyRowMapper 抛出 org.springframework.beans.TypeMismatchException 尽管 setPrimitivesDefaultedForNullValue(true)

java - 在 netbeans 中使用 JSlider 缩放 jPanel

java - Java 和 Javascript Ed25519 实现之间的互操作性

c++ - 如何检查科学记数法是否为 double C++

c - 如何判断双数的分母是否为奇数?

java - 借记卡输入格式

linux - 如何在 unix 中格式化带有目录名的文件列表?

python - matplotlib 后端对渲染格式有什么限制?