我正在开发一个大型程序,它利用一系列较小的方法来创建一个运行正常的拍卖系统我在这个特殊的方法上遇到了麻烦,我必须提高一个项目的最低出价,给出当前或“现在最高的出价”
说明如下:
如果一个出价被接受,那么你需要在当前出价的基础上增加5%的最低出价,四舍五入到低于100.00美元的5美元。
四舍五入至10美元,介于100.01美元和
1000.00美元,四舍五入至50.00美元
1000.01美元和10000.00美元,四舍五入为
最接近的$100超过$10000.00
我的主要问题是弄清楚,根据出价的多少,我完全可以凑到5或10这是我的代码,任何帮助都将非常感谢:)

public class computeMinNextBid
{
    public static double computeMinNextBid(double currentBid)
    {
        double minNextBid = (currentBid * 0.05) + currentBid;
        if(minNextBid <= 100.00)
        {
            minNextBid = Math.round(minNextBid);
        }

        else if(minNextBid >= 100.01 && minNextBid <= 1000.00)
        {
            minNextBid = Math.round(minNextBid);
        }

        else if(minNext Bid >=1000.01 && <= 10000.00)
        {
            minNextBid = Math.round(minNextBid);
        }

        else(minNextBid >= 10000.01)
        {
            minNextBid = Math.round(minNextBid);
        }
        return minNextBid;
    }

    public static void main(String [] args)
    {
        double currentBid = Double.parseDouble(args[0]);
        double minNextBid = computeMinNextBid(currentBid);
        System.out.println("The next minimum bid is: " + minNextBid);
    }
}

最佳答案

舍入为N(使用整数算术)的通用表达式为:

x = (x + N/2)/N * N;

这四舍五入到N的最接近倍数。例如,对于x=45,N=100,这将得到0(即,它将45四舍五入到0)当x=55时,这将得到100(即,它将55舍入到100)。
要舍入(也称为截断),请删除“+ N/2”部分:
x = x/N * N;

要舍入到最接近的N,请使用:
x = (x + N-1)/N * N;

例如,对于x=35和N=100,这将产生100(即,它将0到99之间的任何x舍入到100)。

关于java - 在计算拍卖中的下一个最低出价时,尝试舍入到最接近的$ 5,$ 10,$ 50和$ 100,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22672669/

10-08 22:24