Java 如何对数字进行四舍五入,删除;";从它们中删除小数点并从整数中删除小数点?

Java 如何对数字进行四舍五入,删除;";从它们中删除小数点并从整数中删除小数点?,java,android,Java,Android,我制作了一个加密组合,但长百分比数字或“E”而不是大数字确实破坏了设计,如本例所示: 如何修复它们(四舍五入到2位小数,删除E,从5中删除.0)?尝试以下方法: 数学四舍五入(数字*100.0)/100.0 如果您进行搜索,您可以找到许多其他方法。使用双精度构造函数,您可以将所有这些字符串转换为双精度字符串 String someNumberString = "1.2E5"; Double dNum = new Double(someNumberString); 您可以按如下方式进行舍入:

我制作了一个加密组合,但长百分比数字或“E”而不是大数字确实破坏了设计,如本例所示:

如何修复它们(四舍五入到2位小数,删除E,从5中删除.0)?

尝试以下方法:

数学四舍五入(数字*100.0)/100.0


如果您进行搜索,您可以找到许多其他方法。

使用双精度构造函数,您可以将所有这些字符串转换为双精度字符串

String someNumberString = "1.2E5";
Double dNum = new Double(someNumberString);
您可以按如下方式进行舍入:

double rounded = (Math.round(dNum * ROUND_TO_OFFSET) / ROUND_TO_OFFSET)
其中
ROUND\u TO\u OFFSET
指定要舍入的数字。例如,
四舍五入到偏移量=100
四舍五入到最接近的0.01。但这有一个缺点。Math.round返回一个long,因此如果您的dNum*round_TO_偏移量产生的数字大于或小于long所能容纳的数字,那么它将无法正常工作

您可以使用DecimalFormat类将任何double格式化为一种漂亮、易于阅读的格式

DecimalFormat decimalFormat = new DecimalFormat("#,##0.#####");
String formattedDouble = decimalFormat.format(someDouble);
这允许您轻松地将双精度值转换为如下所示的字符串: 1234567.89012

如果您需要比Long.MAX_值能够处理的精度更高或更大的数字,您应该检查java的BigDecimal类。
BigDecimal提供了自己的舍入方法,允许您指定要舍入的内容。通过调用BigDecimal的
doubleValue()
函数,仍然可以使用DecimalFormat类

我看你被否决了。那是因为你没有告诉我们你尝试过什么。请单击编辑并将您最近的尝试添加到问题中。