关于float,double类型的数据四舍五入的讨论!

kenvin 2003-08-05 11:25:51
我想做到保留一定的有限小数位数。

尝试用Math.Round()方法先扩大,后取整,然后在缩小。
或者用 类似于这种形式:
((int)(obj*1000)/10)/100.0f 这里做保留3位小数 obj为float

可惜容易出现溢出现象了。

我还看到另外一种方法,就是先转换为String,然后处理,然后在转换回来
不过这个会很麻烦!

不知道大家都有什么想法,哪位大侠有更好的意见,希望可以跟贴呀!

...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenvin 2003-08-05
  • 打赏
  • 举报
回复
除了这种方法以外,还有没有别的更好的,这个我也做过了。
bluesmile979 2003-08-05
  • 打赏
  • 举报
回复
先把整数部分取出来,然后就可以只对小数部分扩大,取整,一般精度要求是不会溢出的

最后把整数部分和小数部分合起来就可以了。

直接扩大的话确实是很容易溢出的。
bluesmile979 2003-08-05
  • 打赏
  • 举报
回复
先把整数部分取出来,然后就可以只对小数部分扩大,取整,一般精度要求是不会溢出的

最后把整数部分和小数部分合起来就可以了。

直接扩大的话确实是很容易溢出的。
Kidwish 2003-08-05
  • 打赏
  • 举报
回复
String strObj1 = new DecimalFormat("#0.00").format(double d); //保留2位小数

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧