我怎样才能手动圆?

Mik*_*yte 5 java math rounding

我想在没有round() - Method的情况下手动舍入.所以我可以告诉我的程序这是我的号码,在这一点上我希望你回合.让我举几个例子:
输入数字:144
输入舍入:2
输出舍入数:140

输入数:123456
输入舍入:3
输出舍入数:123500

并且作为一个小插件可能在逗号后面圆:输入数字:123.456
输入舍入:-1
输出舍入数字:123.460

我不知道如何开始编程...有谁知道如何开始这个问题?

谢谢你帮助我:)

我想学习更好的编程,所以我不想使用圆形并制作我自己的编程,所以我可以理解它更好的方式:)

Bar*_*nka 2

一个简单的方法是:

  1. 将数字除以 10 的幂
  2. 通过任何所需的方法进行舍入
  3. 将结果乘以步骤 1 中的相同的 10 次幂

让我给你看一个例子:

您想要将数字四舍五入1234.567到小数点后两位(所需的结果是1234.57)。

x = 1234.567;
p = 2;
x = x * pow(10, p);  // x = 123456.7
x = floor(x + 0.5);  // x = floor(123456.7 + 0.5) = floor(123457.2) = 123457
x = x / pow(10,p);   // x = 1234.57
return x;
Run Code Online (Sandbox Code Playgroud)

当然,您可以将所有这些步骤压缩为一个。我一步步向您展示它是如何工作的。在紧凑的 java 形式中,它会是这样的:

public double roundItTheHardWay(double x, int p) {
    return ((double) Math.floor(x * pow(10,p) + 0.5)) / pow(10,p);
}
Run Code Online (Sandbox Code Playgroud)

至于整数位置,您可以轻松检查这是否也有效(使用p < 0)。

希望这可以帮助