我是靠谱客的博主 苗条背包,最近开发中收集的这篇文章主要介绍java 减法精度缺失_float及double类型减法运算时精度丢失问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当float和double类型在进行减法运算时,会出现精度丢失问题,这种问题主要是由于计算机中普遍使用2进制所造成的。在此做为记录,防止日后遗忘。public static void main(String[] args) {

float a = 2.1f;

float b = 2.0f;

float c = a - b;

System.out.println("a-b=" + c);

}

//输出:a-b=0.099999905

这种情况下需要使用BigDecimal类

BigDecimal add(BigDecimalaugend) 加法运算

BigDecimal subtract(BigDecimal subtrahend) 减法运算

BigDecimal multiply(BigDecimal multiplicand) 乘法运算

BigDecimal divide(BigDecimal divisor) 除法运算public static void main(String[] args) {

float a = 2.1f;

float b = 2.0f;

BigDecimal a1 = new BigDecimal(Float.toString(a));

BigDecimal b1 = new BigDecimal(Float.toString(b));

float c1 = a1.subtract(b1).floatValue();

System.out.println("a1-b1=" + c1);

}

//输出:a1-b1=0.1

详细原理参照http://www.blogjava.net/jelver/articles/340038.html

最后

以上就是苗条背包为你收集整理的java 减法精度缺失_float及double类型减法运算时精度丢失问题的全部内容,希望文章能够帮你解决java 减法精度缺失_float及double类型减法运算时精度丢失问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部