0 0

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

double aa=50.44;
double bb=aa-50;
System.out.println(bb); //0.4399999999999977

类似上面的小数的减法,我想做到,绝对无误差,如何才能实现?
2014年6月09日 11:54

4个答案 按时间排序 按投票排序

0 0

采纳的答案

 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);
	}

2014年6月09日 19:00
0 0



BigDecimal 正解!~

2014年6月09日 16:49
0 0

约定保存多少位,注意四舍五入,提升至int 然后 除/多少位  得到最终结果!

2014年6月09日 13:52
0 0

double的存储空间有限,本来就是有误差的,不管你怎么玩,总是无法避免,除非你用BigDecimal.

2014年6月09日 11:57

相关推荐

    【信号去噪】基于谱减法和维纳滤波实现语音去噪含Matlab源码.zip

    总结,本资料的主旨是介绍如何利用谱减法和维纳滤波相结合的方式进行语音去噪,并提供了Matlab实现的源码。这对于学习和研究信号处理、语音处理的学者具有很高的参考价值。通过实践这些代码,不仅可以加深对理论的...

    谱减法程序汇总.rar

    本资料“谱减法程序汇总.rar”是针对谱减法在语音降噪中的应用进行的一个综合集合,其中可能包含了多种实现方式,如基础的Boll谱减法以及针对高斯噪声和不同信噪比(SNR)条件下的改进算法。 首先,我们要理解谱...

    语音增强报告(谱减法和维纳滤波

    总结起来,语音增强报告探讨了谱减法和维纳滤波法在语音处理中的应用,强调了理论分析与实践实现的重要性。这两种方法在提高语音质量和可懂度方面都有其独特的价值,但实际应用中需要根据具体场景和噪声特性来选择...

    verilog用减法实现可综合除法器

    移位除法器是一种常用的实现方式,它通过移位和减法操作来完成除法计算。移位除法器能够根据具体需求实现任意精度的除法运算,且对时序影响较小。但缺点是实现较高精度的除法时,可能需要多个时钟周期才能完成,而且...

    matlab 实现语音增强(含维纳滤波、谱减法、卡尔曼滤波三种实现方法)

    1. 维纳滤波:这是一种基于最小均方误差准则的线性滤波方法。维纳滤波器能够根据输入信号和噪声的功率谱密度来设计滤波器权重,以最大限度地减小处理后的噪声。在MATLAB中,可以使用`wiener2`函数来实现二维维纳滤波...

    简析运算放大器减法电路

    运算放大器减法电路是一种基本的模拟电路应用,它能够实现两个输入信号电压的减法运算。本文将重点介绍运算放大器减法电路的工作原理、设计要点以及相关的基础知识。 首先,需要了解运算放大器的基本概念。运算放大...

    【信号去噪】基于谱减法、最小均方和维纳滤波三种算法实现信号去噪含Matlab源码.zip

    在给定的标题“【信号去噪】基于谱减法、最小均方和维纳滤波三种算法实现信号去噪含Matlab源码.zip”中,提到了三种经典的信号去噪算法:谱减法、最小均方(LMS)算法和维纳滤波。这些方法在实际应用中各有其特点和...

    语音增强报告(谱减法和维纳滤波).docx

    本报告主要探讨两种常用方法:谱减法和维纳滤波法。 **一、语音增强方法的理论分析** 1. **引言** 语音增强的目标在于提高语音的质量和可懂度。由于噪声通常是随机的,完全消除背景噪声并不现实。因此,增强策略...

    分别使用谱减法,维纳滤波法,卡尔曼滤波法实现语音增强的matlab仿真,使用matlab2021a或者更高版本测试

    `MSSE.m`可能实现了最小均方误差(MSE)准则,这是维纳滤波的优化目标。`weinafa.m`可能是实现维纳滤波的核心代码,而`weinahome.m`可能是整个流程的主函数。维纳滤波在大多数情况下能提供更好的性能,但需要更多的...

    1000以内加减法口算练习题.doc

    7. **负数的引入**:虽然题目中没有涉及负数,但在实际应用中,理解了正数的加减法后,负数的概念可以自然延伸,例如-100加上200等于100,反之亦然。 通过持续的口算练习,学生可以提高计算速度和准确性,这对于...

    【老生谈算法】matlab实现谱减法音频降噪处理.doc

    【老生谈算法】matlab实现谱减法音频降噪处理 在语音信号处理领域,尤其是在音频降噪中,谱减法是一种常见的有效算法。该方法主要针对加性噪声进行处理,尤其适用于消除平稳的背景噪声,从而提高语音信号的信噪比。...

    模拟加减法电路和汽车尾灯控制电路

    - **减法电路**:基于两个运放组成,第一个运放作为反向放大器,第二个运放作为反相加法器,最终实现减法运算。 **方案二**: - **加法电路**:首先构建反相加法器,然后通过反相器输出正相加法结果。 - **减法电路...

    比例求和减法运算电路

    反相比例放大电路则是通过设置负反馈来实现放大倍数为-1的情况。理论值表明,输出电压UO是输入电压Ui的负值。实验中,随着输入电压的增大,输出电压也相应变化,但存在一定的误差,这可能是由于实际电路中的非理想...

    语音增强matlab实现包括谱减法、维纳滤波法、卡尔曼滤波法-源码

    在本文中,我们将深入探讨三种常用的语音增强技术:谱减法、维纳滤波法以及卡尔曼滤波法,这些都是在MATLAB环境下实现的。MATLAB作为一种强大的数值计算和编程环境,非常适合进行信号处理和算法开发,特别是对于语音...

    基于matlab的语音增强方法设计与实现(卡尔曼滤波法,维纳滤波法,谱减法)

    本文主要探讨了三种在MATLAB环境中实现的语音增强方法:卡尔曼滤波法、维纳滤波法和谱减法。这些方法都是在信号处理中广泛应用的算法,尤其在语音通信、语音识别和听力辅助设备等领域。 1. **卡尔曼滤波法**: ...

    高输入电阻减法运算电路(A-B)仿真原理图

    仿真电路图带详细的注释,电路的功能:因为输人电阻高,所以信号源电阻产生的误差可忽略不计,象模拟记录仪等要进行大幅度零点移动的仪表可使用本电路。例如,要记录土10V电压的变动情况,可把信号从A输入,由外部基准...

    有限元强度折减法在土坡与岩坡中的应用.pdf

    研究显示,采用这一准则计算得到的安全系数与传统Spencer法相比,误差在5%左右,表明其在工程实践中的适用性和准确性。 #### 精度分析与改进措施 有限元强度折减法的计算精度受到多种因素的影响,包括屈服准则的...

    有理数的加减法(提高)巩固练习.doc

    6. **误差范围**:在质量标注中,如`(25±0.1)kg`表示质量可能在24.9kg到25.1kg之间,计算最大差值即可得到质量的最大相差值。 7. **数轴上的比较**:在数轴上,右边的数总是大于左边的数,通过点的位置关系可以...

Global site tag (gtag.js) - Google Analytics