通常我们习惯这么写:
float a = 2.123f;
float b = 1.101f;
System.out.println("a-b=" + (a-b));
运行结果:a-b=1.022
那么这么写呢?
a = 2.1235f;
b = 1.1012f;
System.out.println("a-b=" + (a-b));
运行结果:a-b=1.0223001
可我们的期望值是:a-b=1.0223
所以float的精度到了4位之后就得这么写:
BigDecimal c = new BigDecimal(Float.toString(a));
BigDecimal d = new BigDecimal(Float.toString(b));
System.out.println("a-b=" + (c.subtract(d)).floatValue());
运行结果:a-b=1.0223
不信你自己试试!
原因请参考:[转载]http://blog.csdn.net/fancylovejava/article/details/12027039
相关推荐
从外部输入4个无符号数,将前两个数相加,和存入内存30H单元;后两个数相减,差存入内存31H单元。并将两个结果分别输出。
汇编指令实现两个数字相减,通过汇编指令实现输出
实现两个数值型的日期相减得出天数的函数。
课程设计要求 设计一个程序实现两个矩阵的基本运算 两个矩阵相加 两个矩阵相减 两个矩阵相乘 求一个矩阵的转置矩阵 底层数据结构使用的是稀疏矩阵,用数组实现 使用C++语言,基于Qt5平台开发
使用Opencv内置函数实现两幅图像相减
主要介绍了C#实现两个时间相减的方法,实例分析了C#针对时间操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
上个实例改进 java实现两个日期相减得到中间的年份和月份日期
学校的实验报告,在DOS下输入汇编程序,两个压缩的BCD码相减并调整结果为压缩的BCD码,有详细步骤 word格式
java 两个日期相减得到的天数、毫秒数;获取两个日期中的最大日期;获取两个日期中的最小日期。
编写一个程序用单链表存储多项式,按指数从大到小排序多项式,并实现两个多项式的相加和相减
SQL语句中如何做到间隔行相减
西门子博途1200 时间相减
在应用中,有时需要将点云数据去掉背景,保留本体,最简单的方法,将点云数据与背景数据相减,留下来的既是本体数据
c++实验实现复数的相减c++实验实现复数的相减c++实验实现复数的相减c++实验实现复数的相减c++实验实现复数的相减c++实验实现复数的相减c++实验实现复数的相减
mssql sqlserver 使用sql脚本实现相邻两条数据相减.docx
设计一个稀疏矩阵运算器。实现两个矩阵相加、相减和相乘等的运算。矩阵的输入输出均按通常的阵列形式
广告位展示 数字日历 自定义对话框 日期相减 gallery广告位 相册上传
从外部输入4个无符号数,将前两个数相减,后两个数相加,再将两个结果进行与操作。
两个日期相减获得之间的天数