java - 如何从 int 数组向下舍入到最接近的整数?

标签 java arrays math integer rounding

我正在用 Java 设计一个捐赠插件,用户可以从中捐赠自定义金额。通过捐赠,您可以从某些包裹中获得好处。

我想要做的是将整数n向下舍入到最接近的捐赠包。

例如,可能有 3 个捐赠包,全部表示为整数。捐款包有 5 美元、10 美元和 20 美元。如果用户捐赠 13 美元,我希望插件将其四舍五入为 10 美元,因为这是最近的捐赠包。

最佳答案

嗯,今天有点空闲。 (: 关心捐赠数组的顺序是递增的..否则先排序

public class Donation {
    private static int[] donArray = {10, 5, 30, 20};
    static{
        Arrays.sort(donArray);
    }

    public static void main(String[] args){
        int paid = 13;
        System.out.println("Applied Donation: " + applyDonation(paid));
    }

    private static int applyDonation(int paid) {
        int applied = 0;
        for(int range: donArray){
            if(range <= paid)
                applied = range;
            else
                break;
        }
        return applied;
    }
}

或者更简单:

    TreeSet<Integer> donSet = new TreeSet<Integer>(Arrays.asList(new Integer[]{10, 5, 30, 20}));
    int paid = 13;
    System.out.println("Applied Donation: " + donSet.floor(paid));

关于java - 如何从 int 数组向下舍入到最接近的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612891/

相关文章:

javascript - 使用另一个数组更新对象数组

c++ - 将数据拟合到 3 次多项式

java - 在Java中计算曲线下的精确面积

java - Spring MVC - AngularJS - 文件上传 - org.apache.commons.fileupload.FileUploadException

java - EJB:没有接口(interface)的依赖注入(inject)

Linux 上的 Java 无法读取进程输入流

arrays - MATLAB:比较两个不同长度的数组

java - 在 Java 程序之间共享 I/O

arrays - 如何制作包含当前月份和接下来月份的数组。?

mysql - 标准差 (STDDEV) 是否适合该工作?