float num=32.12f;
System.out.println(num-(int)num);
代码如上所示,定义一个float数,减去整数部分后,余下的为什么不是0.12,而是一串小数0.11999893?
定义一个float数32.12,减去整数部分后,余下的为什么不是0.12,而是一串小数?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- jayby00 2017-03-17 03:32关注
因为32.12后面的12其实就是11999893等等等。。。
只是默认近似到了12,即使你手动赋值32.12 ; 这个是float精度的问题
如果你想要一个非常精确的数字。建议你是用 BigDecimal 这个类(java 语言)
希望对你有帮助
2017年03月17日11:32:49本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 怎么在stm32门禁成品上增加记录功能
- ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
- ¥50 NT4.0系统 STOP:0X0000007B
- ¥15 想问一下stata17中这段代码哪里有问题呀
- ¥15 flink cdc无法实时同步mysql数据
- ¥100 有人会搭建GPT-J-6B框架吗?有偿
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 解riccati方程组