想象一下,我有很长的代价:
548880
也许这指定了54.8880的价格。长格式用于通过线路传输数据。
我想简单地将价格四舍五入到给定的精度。
例如,54.8880 --> 54.89
,因此我的最终长度变为548900。
是否有可能以这种方式直接绕过长路,或者我是否需要长时间重新转换为BigDecimal
,然后再回到长路?
答案 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
使常量适应其他精度。