java - 如何将数字四舍五入到用户给定的小数位数

标签 java math

我想做的是接受用户给定的输入(操作数)并将当前数字四舍五入到操作数的小数位数。例如,如果我在运行的计算器程序中当前的数字是 15.44876,并且用户输入是 2,我希望返回值是 15.45,或者至少是 15.44。

public double round(double operand){
    this.answer = Math.round(this.answer, operand);
    return this.answer;

我知道上面的代码不正确,但它只是一个占位符,因为我对此感到非常困惑。

最佳答案

您可以乘以适当的 10 次方,舍入,然后除以 10 的相同次方。此方法假设数字在范围内,因此不会出现溢出问题。

public double round(double value, int places) {
    final double scale = Math.pow(10.0, places);
    return Math.round(value * scale) / scale;
}

如果溢出可能是一个问题,还有其他方法。

关于java - 如何将数字四舍五入到用户给定的小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60121047/

相关文章:

math - 编码数学算法 - 我应该使用书中的变量还是更具描述性的变量?

ios - 精确的 3D 缩放缩放

java - 2个位置之间的距离法

java - 查找数组中最大元素的索引

java - Kotlin:将 Array 作为 vararg 参数传递时参数类型不匹配

java - Spring 数据 JDBC : Conversion of compound domain types

java - Round Double 值和指数表示法 (java)

algorithm - 如何标准化趋势数据?

java - 实现复杂首选项屏幕的最佳方式?

java - 在条形图 AChartEngine 中向 Y 轴标签添加 % 符号