Java 将数字拆分为相等的周期值

Java 将数字拆分为相等的周期值,java,Java,我得到了最小值和最大值 e、 g:min=10和max=1000现在我想把这个数字分成相等的部分,结果应该是10个数字 比如:1002003004005006007008009001000 我们可以将max除以我们想要的数字,例如:1000/10,然后每次加100 但是,有一种情况给了我们: 在这种情况下,如果我们除以1113/10,那么我们将得到111 这个范围大概是0,113,226,339 但是,我不想让他们这样看。如果我能显示110、115或120个偶数(四舍五入)而不是113,那就更好

我得到了最小值和最大值

e、 g:min=10和max=1000现在我想把这个数字分成相等的部分,结果应该是10个数字

比如:1002003004005006007008009001000

我们可以将max除以我们想要的数字,例如:1000/10,然后每次加100

但是,有一种情况给了我们: 在这种情况下,如果我们除以1113/10,那么我们将得到111

这个范围大概是0,113,226,339

但是,我不想让他们这样看。如果我能显示110、115或120个偶数(四舍五入)而不是113,那就更好了


有人能帮我吗。

在你的例子中,当
min=14
max=1113
你除以1113/10得到111。如果要将111四舍五入到110,可以执行
111-(111%10)
获得110。然后简单地迭代10次,并将开始数乘以当前迭代

这里有一个类似的帖子:


根据您想要显示的数字(110、115或120),您可以用类似的方法来处理此问题。

这是一种缩放图表的算法;在轴上分布刻度。 然而,10个滴答声是一个过高的估计

private int[] ticks(int min, int max) {
    int gap = (max - min) / 10;
    // Round gap up to a nice value - best calculatory:
    if (gap < 1) {
        gap = 1;
    } else if (gap < 5) {
        gap = 5;
    } else if (gap < 10) {
        gap = 10;
    } else if (gap < 50) {
        gap = 50;
    } else if (gap < 100) {
        gap = 100;
    } else if (gap < 250) {
        gap = 250;
    ...
    }
    int minTick = (min/gap) * gap;
    if (minTick > min) { // For negative numbers.
        minTick -= gap;
    }
    int maxTick = (max/gap) * gap;
    if (maxTick > min) { // Negative, and ceiling.
        maxTick += gap;
    }
    int ngap = (maxTick - minTick) / gap;
    int[] ticks = new int[ngaps + 1];
    for (int i = 0; i <= ngaps; ++i) {
        ticks[i] = minTick + i * gap;
    }
    return ticks;
}
private int[]刻度(最小整数,最大整数){
内部间隙=(最大-最小)/10;
//将差距四舍五入到一个合适的值-最佳计算:
如果(间隙<1){
差距=1;
}否则,如果(间隙<5){
差距=5;
}否则,如果(间隙<10){
间隙=10;
}否则,如果(间隙<50){
差距=50;
}否则,如果(间隙<100){
间隙=100;
}否则,如果(间隙<250){
间隙=250;
...
}
int minTick=(最小值/间隙)*间隙;
if(minTick>min){//表示负数。
minTick-=间隙;
}
int maxTick=(最大值/间隙)*间隙;
如果(maxTick>min){//为负数,则为上限。
maxTick+=间隙;
}
int ngap=(maxTick-minTick)/gap;
int[]ticks=新int[ngaps+1];

对于(int i=0;i)您如何决定“四舍五入”多少?你想一直四舍五入到10的最接近倍数?5的最接近倍数?还是其他?你的算法不清楚。你为什么要这样四舍五入?@Code peedientexcatly@FedericoklezCulloca奇数的5或10的最近倍数numbers@Rohitesh选择一个。然后用谷歌搜索如何绕行。你应该包括相关的信息在您的答案中,不要将其作为链接