Java,如何以模仿舍入的方式截断长数字?

时间:2016-06-23 15:55:02

标签: java rounding

想象一下,我有很长的代价:

548880

也许这指定了54.8880的价格。长格式用于通过线路传输数据。

我想简单地将价格四舍五入到给定的精度。

例如,54.8880 --> 54.89,因此我的最终长度变为548900。

是否有可能以这种方式直接绕过长路,或者我是否需要长时间重新转换为BigDecimal,然后再回到长路?

2 个答案:

答案 0 :(得分:2)

long n = 33333; // your number
int digit = n%10; // will return 3
if(digit < 5) 
    n -= digit; // 33330
else {n-= digit; n += 10;} // 33340

更改10以​​符合您的精确度。

答案 1 :(得分:1)

有点棘手的单线轮到100的倍数是:

(n + 50) / 100 * 100

使常量适应其他精度。