我需要一种简单的方法(JAVA)来在这种模式下舍入欧元:
任何人都可以帮助我吗?感谢。
答案 0 :(得分:2)
一般情况下:以浮动/双打存钱是一个坏主意,只会导致灾难。
如果您的数字足够小,您可以将分数存储为整数:100,101,...在您的示例中。如果它们可能会变得太大,请使用BigIntegers或等效的。
你可以像这样转换你想要的方式:减去1(分),除以粒度(在这种情况下为5美分),加1,乘以粒度。
答案 1 :(得分:1)
double euro = 1.07;
final double dif = euro % 0.05;
if (dif > 0.025) {
euro += 0.05 - dif;
} else {
euro -= dif;
}
答案 2 :(得分:0)
我不知道正确的java语法,但这应该是技巧:
price = round(price * 100 / 5) / 100 * 5