Java double float与int相乘出错问题
来源:互联网 发布:蜂窝移动数据怎么清零 编辑:程序博客网 时间:2024/05/21 07:54
看下面的一段代码的运行:
public class double_int {public static void main(String[] args) {double d = 0.06;float f = (float) d;int n = 750;int ref = (int) (n * (1 + f));System.out.println(ref);}}
输出结果很意外的不是 795而是794
public class double_int {public static void main(String[] args) {double d = 0.16;float f = (float) d;int n = 750;int ref = (int) (n * (1 + d));System.out.println(ref);}}输出结果很意外的不是870而是869
解决方法
import java.math.BigDecimal;public class double_int_float {public static void main(String[] args) {double d = 0.06;float f = (float) d;int n = 750;BigDecimal a1 = new BigDecimal(Double.toString((d + 1)));BigDecimal b1 = new BigDecimal(Double.toString(n));int result = a1.multiply(b1).intValue();// 相乘结果System.out.println(result);}}
阅读全文
0 0
- Java double float与int相乘出错问题
- float数据 与 double数据相乘时,结果转成int时会出现错误
- java float double int 疑惑
- 关于int,float,double与Integer、Float、Double的理解
- Java String转int、float、double
- int、 long、 float、 double范围(java)
- java数值范围以及float与double精度丢失问题
- int float double BigDecimal
- 关于int型和float型相乘的问题
- Java double 相乘的小问题记录
- Java double 相乘的小问题记录
- Java double 相乘的小问题记录
- Java中byte数组与short,int,char,long,float,double之间的转换
- Java中byte数组与short,int,char,long,float,double之间的转换
- String与int float double 类型之间的转换
- C# double float int string 与 byte数组 相互转化
- C# double float int string 与 byte数组 相互转化
- C# double float int string 与 byte数组 相互转化
- 前端js加密方式
- T const & 和 const T&
- 隐私政策
- 蓝牙模块HC-05与51单片机的连接
- linux进程地址空间--vma的基本操作
- Java double float与int相乘出错问题
- kafka应用实践
- mysql根据某个字段去重
- web测试-权限管理和兼容性测试
- raid5因两块硬盘掉线导致的数据丢失恢复过程分享
- Windows 10 1703/1709 版本 Win+X 丢失原控制面板解决方法
- 回调函数的作用
- Spring Security4.0.3源码分析之FilterChainProxy执行过程分析
- 学习笔记:泛型数组