gpt4 book ai didi

java - 制定划分的一般规则

转载 作者:行者123 更新时间:2023-12-01 12:49:20 25 4
gpt4 key购买 nike

我有以下功能:

public static void main(String[] args) {
int interval = 23950;

System.out.println (Math.round(weekInterval/1000.00)*1000);



}

该函数所做的就是将数字(间隔)四舍五入到最接近的百或千的倍数等。

现在数字间隔可能会发生变化,可以从数百到数十亿不等,我想设定一个除法的通用规则:

这样

Math.round(weekInterval/placeholder)*placeholder)

有什么想法吗?

编辑:

到目前为止,这是我利用有限的知识得出的结论——请耐心等待,这可能效率很低:

public static void main(String[] args) {
int weekInterval = 2500;
StringBuilder sbr = new StringBuilder();
int len = String.valueOf(weekInterval).length();
String num = "1";
for(int i = 2; i<=len; i++){

sbr.append("0");
}
System.out.println("Number is "+sbr.toString());
System.out.println("Number is "+num+sbr.toString());

int placeholder = Integer.valueOf(num+sbr.toString());
System.out.println((weekInterval + placeholder/2)/placeholder*placeholder);


}

最佳答案

来自http://mindprod.com/jgloss/round.html#MULTIPLE :

// rounding m up to next highest multiple of n
int ceil = ( m + n - 1 ) / n * n;

// rounding m down to multiple of n
int floor = m / n * n;

// rounding m to nearest multiple of n
int near = ( m + n/2 ) / n * n;

这里 m 是要舍入的数字,n 是您的“占位符”

关于java - 制定划分的一般规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com