java四舍五入。

 

 

float a=3.335f;
System.out.println(Math.round(a*100)/100.00);

 Math.round(100.5f)结果应该是多少?101,没错!

 

Math.round(-100.5f)呢?-101,错了,是-100。

不可思议吧,看看API说明:

Returns the closest int to the argument. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type int. In other words, the result is equal to the value of the expression:

 

(int)Math.floor(a + 0.5f);
 

Sun也太偷懒了,-100.5f + 0.5f不等于-100才怪。只能写个判断了,先取正数值再取负:

if (num < 0) { 
  return -Math.round(-num);
 }
   return Math.round(num);
 

 

以下是其他语言的运行结果:
Javascript: Math.round(-100.5) => -100 (一脉相承!)
VBScript: Round(-100.5) => -100 (Round(100.5) = 100,噗~~)
Excel:=ROUND(-100.5, 0) => -101
Ruby: (-100.5).round => -101
Lua: 无round函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值