做减法,没有误差的减法,如何实现?

问题描述

double aa=50.44;double bb=aa-50;System.out.println(bb); //0.4399999999999977类似上面的小数的减法,我想做到,绝对无误差,如何才能实现?

解决方案

public static double sub(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.subtract(b2).doubleValue();}public static void main(String[] args) {double aa=50.44; double bb = sub(aa, 50);System.out.println(bb);}
解决方案二:
BigDecimal 正解!~
解决方案三:
约定保存多少位,注意四舍五入,提升至int 然后 除/多少位 得到最终结果!
解决方案四:
double的存储空间有限,本来就是有误差的,不管你怎么玩,总是无法避免,除非你用BigDecimal.

时间: 2024-09-14 16:57:08

做减法,没有误差的减法,如何实现?的相关文章

微信也不好做的那些加法和减法

也许对于负责微信推广的人来说,最大的困难在于,告诉别人微信其实已经解决了他们的使用痛点.很久之前在朋友圈.微博上看到,有人说希望微信添加分组的功能,毕竟,每个人都有自己的隐私--其实,很多人并非希望所有事情都瞒着父母,实际上,他们是不希望让父母产生不必要的误会.这个问题微信解决了吗?已经解决了,只不过,这个功能藏在一个非常隐蔽的地方,难以发现.让我先讲一下如何不让父母看到某些照片:进入设置: 找到隐私: 打开朋友圈分组: 选择部分可以说悄悄话的朋友,设置为同一个群组: 往朋友圈发照片的时候,将可

魏武挥:创业公司所谓做减法

专栏作家介绍:魏武挥:新媒体观察员.上海交大媒体与设计学院讲师互联网圈子里盛行一个说法叫"做减法",尤其是"给产品做减法".通常来说,都会以一些国外的服务作为标杆,比如twitter就是一种非常简洁的网络服务.但如果我们稍微审视一下国内的网络服务,几乎没有一个成功的产品或服务是做"减法"的结果.9成9以上的服务,都是花里胡哨.功能繁杂的.这件事让人很疑惑.这个减法究竟在哪里?或者再追问一下:究竟要不要做减法?有一个做投资的朋友和我说,现在在投资领

Photoshop减法二次构图方法:婚片梦幻背景添加

构图知识在人像摄影中的应用已经成为比不可少的部分,只要是摄影师就应该知道如何将构图知识运用到人像的拍摄中.但是随着摄影技术的发展,数码摄影已经占领了摄影领域的主导.因此很多摄影师在拍摄人像时就容易主观上忽略一些细节,这些细节中就有我们今天要说的构图问题.并非摄影师拍摄技术问题,只是很多摄影师不太了解后期环节对照片的需求或者是自己给忽略掉后期环节的要求,所以在摄影环节感觉非常好的照片到后期处理或者是排版时候就出现了构图问题.出现这种问题后,后期环节就要对照片的构图进行调整看,这就是二次构图. 针对

《趣学Python编程》——第2章 计算与变量 2.1 用Python来做计算

第2章 计算与变量 好了,现在你的Python装好了,也知道如何启动Python Shell程序了,那么你就已经准备好用它来做点什么了.我们将从一些简单的计算开始,然后再使用变量.变量是计算机程序中用来保存东西的一种方式,它们能帮你写出有用的程序来. 2.1 用Python来做计算 一般来讲,当你要得到两个数字的乘积时你会用计算器或者笔和纸,比方说8 × 3.57.那么用PythonShell程序来运行这个计算是怎么样的?让我们来试一试. 双击桌面上的IDLE图标来启动PythonShell程序

js操作符类型转换大全(前端面试题之操作符)

 操作符运算符,在前端的面试题目中经常出现,很多朋友在对其运算的时候经常出错.说明对操作符运算还没有完全理解,我前面的一篇文章,javascript双等号引起的类型转换,主要讲解双等号引起的类型转换.本篇文章可以说是对这篇文章的补充吧!   首先,我们先来做一些题目吧!为了统一,我不混着来写这些题目,面试题目中,经常将这些题目混起来,这样对你的迷惑度会更大,为了更方便演示,我在这里分模块写了一些题目,大家可以看下!   //操作符字符串的隐性转换   //乘法   console.dir("--

8086/8088指令系统

一.数据传送指令1.通用数据传送指令MOV(Move)传送PUSH(Push onto the stack)进栈POP(Pop from the stack)出栈XCHG(Exchange)交换.MOV指令格式为: MOV DST,SRC执行的操作:(DST)<-(SRC).PUSH进栈指令格式为:PUSH SRC执行的操作:(SP)<-(SP)-2((SP)+1,(SP))<-(SRC).POP出栈指令格式为:POP DST执行的操作:(DST)<-((SP+1),(SP))(S

CSS中的一些百分比相关调试经验分享

  很多css属性的取值都可以是百分比值.虽然形式上来说,百分比值都是数字后跟%的形式(注意数字和%之间不可以有空格),但在不同的使用场合下,其意义会有很多不同.因此,百分比值可以说包含了相当丰富的内容. 百分比值是相对值 要理解诸如100%这样的百分比值,其关键点是要明白,百分比是一定有其对应的参照值的.也就是说,百分比值是一种相对值,任何时候要分析它的效果,都需要正确找到它的参照. 一个css属性值从定义到最终实际使用,是存在一个过程的.这其中涉及到Specified Values(指定值)

photoshop色彩的基础概念

色彩构成(Interaction of color),可以理解为色彩的作用,是在色彩科学体系的基础上,研究符合人们知觉和心理原则的配色.配 色有三类要素:光学要素(明度.色相.纯度),存在条件(面积.形状.肌理.位置),心理因素(冷暖.进退.轻重.软硬.朴素华丽),设计的时候运用逻辑 思维选择合适的色彩搭配,产生恰当的色彩构成.最优秀的配色范本是自然界里的配色,我们观察自然界里的配色,通过理性的提炼最终获得我们所需要的东西. 一.色彩构成三原理 1)色彩的印象方面 指从自然界的色彩效果入手去发现

跟随Android进入ARM v8a的世界(1) - 从例子说起

跟随Android进入ARM v8a的世界 从例子说起 目前我们在Android上运行的ARM芯片,有6套指令集,32位的ARM v5指令集,16位的thumb指令集,32位的ARM v7a指令集,16位和32位混合的thumb2指令集,32位的ARM v7a带Neon的指令集,还有64位的ARM v8a指令集. 16位的Thumb指令集是个不完备的指令集,需要跟ARM指令混编才可以完成全部的功能. 我们先向经典致敬,看看求最大公约数的代码. C代码是这样的: unsigned int gcd(