jtl_007 2017-03-17 03:30 采纳率: 40%
浏览 1387
已采纳

定义一个float数32.12,减去整数部分后,余下的为什么不是0.12,而是一串小数?

float num=32.12f;   
System.out.println(num-(int)num);
代码如上所示,定义一个float数,减去整数部分后,余下的为什么不是0.12,而是一串小数0.11999893?
  • 写回答

6条回答

  • jayby00 2017-03-17 03:32
    关注

    因为32.12后面的12其实就是11999893等等等。。。
    只是默认近似到了12,即使你手动赋值32.12 ; 这个是float精度的问题
    如果你想要一个非常精确的数字。建议你是用 BigDecimal 这个类(java 语言)
    希望对你有帮助
    2017年03月17日11:32:49

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况