相关疑难解决方法(0)

如何在Java中将数字舍入到n个小数位

我想要的是一种将double转换为使用half-up方法进行舍入的字符串的方法 - 即如果要舍入的小数为5,则它总是向上舍入到前一个数字.这是在大多数情况下舍入大多数人所期望的标准方法.

我也希望只显示有效数字 - 即不应该有任何尾随零.

我知道这样做的一种方法是使用该String.format方法:

String.format("%.5g%n", 0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91239
Run Code Online (Sandbox Code Playgroud)

这很好,但它总是显示5位小数的数字,即使它们不重要:

String.format("%.5g%n", 0.912300);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91230
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用DecimalFormatter:

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91238
Run Code Online (Sandbox Code Playgroud)

但是你可以看到这使用了半均匀舍入.也就是说,如果前一个数字是偶数,它将向下舍入.我想要的是这个:

0.912385 -> 0.91239
0.912300 -> 0.9123
Run Code Online (Sandbox Code Playgroud)

在Java中实现这一目标的最佳方法是什么?

java decimal rounding digits

1209
推荐指数
22
解决办法
155万
查看次数

将数字四舍五入为最接近的5的倍数

有谁知道如何将数字四舍五入到最接近的5的倍数?我发现了一个算法将它四舍五入到最近的10的倍数,但我找不到这个.

这样做十分.

double number = Math.round((len + 5)/ 10.0) * 10.0;
Run Code Online (Sandbox Code Playgroud)

java rounding

34
推荐指数
6
解决办法
7万
查看次数

在熊猫中舍入到最接近的 1000

我已经搜索了 pandas 文档和食谱,很明显您可以使用dataframe.columnName.round(decimalplace).

你如何用更大的数字做到这一点?

例如,我有一列房价,我希望它们四舍五入到最接近的 10000 或 1000 或其他。

df.SalesPrice.WhatDoIDo(1000)? 
Run Code Online (Sandbox Code Playgroud)

python pandas data-science

8
推荐指数
1
解决办法
6828
查看次数

标签 统计

java ×2

rounding ×2

data-science ×1

decimal ×1

digits ×1

pandas ×1

python ×1