处理精确小数运算
package yfTest.shixi;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import org.junit.Test;
public class BigDecimalTest {
/**
* @param args
*/
@Test
public void bigDecimalTest() {
float a = 1.10540001f;
float b = 2.2f;
BigDecimalTest t = new BigDecimalTest();
System.out.println(t.add(a,b));
System.out.println(t.sub(a,b));
System.out.println(t.mul(a,b));
System.out.println(t.div(a,b));
System.out.println(t.round(a)); //1.11
//保留小数点后两位(4舍五入)
DecimalFormat dcmFmt = new DecimalFormat("0.00");
double db = 12333.007;
System.out.println(dcmFmt.format(db));//12333.01
}
public float add(float v1,float v2){//加法
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.add(b2).floatValue();
}
public float sub(float v1,float v2){//减法
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.subtract(b2).floatValue();
}
public float mul(float v1,float v2){//乘法
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.multiply(b2).floatValue();
}
public float div(float v1,float v2){//除法
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
}
public float round(float v){//截取2位
BigDecimal b = new BigDecimal(Float.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,2,BigDecimal.ROUND_HALF_UP).floatValue();
}
//不用reflect 返回当前调用的方法和所在行数!(技巧)
public static void main(String args[]) {
new BigDecimalTest().doit();
}
public void doit() {
System.out.println(new Exception().getStackTrace()[0]);
}
}
分享到:
相关推荐
阶乘运算在组合数学和概率论中广泛使用,精确小数计算器能处理极大数值的阶乘,这对于解决组合问题或者计算排列组合数量极其便利。通常,普通计算器在n值较大时会因溢出而无法计算阶乘,但这款工具能克服这一限制。 ...
由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将深入探讨这个问题,并提供一些解决方案。 首先,我们来理解...
总之,"jisuanqi.zip" 提供了一个专注于小数运算的计算器,它实现了基础的数学运算,适用于各种需要精确小数计算的场景。理解和实现这样的计算器程序,不仅可以提升编程技能,还能深入理解小数运算背后的数学原理和...
ArithmeticUtils用于高精确处理常用的数学运算工具类 提供精确的加法运算 提供精确的减法运算 提供精确的乘法运算 提供(相对)精确的除法运算,当发生除不尽的情况时...提供精确的小数位四舍五入处理 取余数 比较大小
这份名为“Keil C-51下快速小数运算算法”的文档,显然关注的是如何在这款编译器环境下,有效地进行浮点或定点小数的计算。在嵌入式系统中,由于资源有限,高效的数学运算尤为重要,特别是对于涉及到实时性要求的...
在进行浮点数计算时它们无法精确表达出所有的十进制小数位。 a = 4.1 b = 5.329 print(a+b) 9.428999999999998 这些误差实际上是底层CPU的浮点运算单元和IEEE754浮点数算数标准的一种“特性”。python的浮点数类型...
在JAVA编程中,处理定点小数运算可以使用`BigDecimal`类,它支持任意精度的十进制运算,包括加、减、乘、除以及比较等操作。`BigDecimal`提供了丰富的构造函数和方法,可以方便地实现定点小数的各种运算,同时也支持...
小数是一种表达部分数值的方式,特别适用于处理货币、长度、重量等具有精确度量的场景。下面是针对每个问题的详细解答: 1. 9元5角3分 + 6角8分 = 9.53元 + 0.68元 = 10.21元 这里的计算是将人民币的元、角、分转换...
处理小数时,我们可能会遇到舍入问题,这时可以使用`BigDecimal`类,它提供了更精确的浮点数运算,避免了由于浮点数计算的误差导致的结果不准确。 对于小数的四舍五入,Java提供了`Math.round()`方法,它可以将一个...
对于小数的加减乘除,学生需要对每一位数进行精确的计算,同时还要正确处理运算顺序。在此基础上,混合运算要求学生根据数学中的运算法则,如先乘除后加减,从左至右的计算顺序等,来解决问题。例如,对于题目2.6+...
以10.286×0.32为例,学生应先计算出精确结果,然后根据题目要求保留适当的小数位数。在本题中,精确结果为3.2912,保留两位小数则为3.29,这里运用了四舍五入的规则。 快速计算部分则进一步挑战学生对于小数乘法的...
在C#编程中,处理多位小数的精度问题是一个常见的挑战。这主要涉及到浮点数和定点数的数据类型,以及它们在数学运算中可能出现的精度损失。本文将深入探讨这个问题,并提供解决方案。 首先,让我们理解为何会出现...
文档“小数计算练习题.doc”就为我们提供了这样一系列的题目,它们覆盖了小数运算的各个方面,包括基本的乘法、除法、加法和减法,以及保留小数位数、循环小数表示等特别要求。本篇文章将对这些知识点进行详细解析,...
总结起来,Java中进行精度计算并指定精确小数位,应使用`BigDecimal`类,通过`DecimalFormat`进行格式化,并结合`setScale`方法来设定小数位数。这个过程可以有效地避免浮点数运算中的精度问题,确保计算结果的准确...
但这种做法存在精度问题,它实际上是对数字进行了四舍五入,所以在处理精确的小数运算时可能不够准确。比如,使用toFixed(1)对0.1+0.2进行处理后,得到的数值在数学上仍然是0.***,而不是精确的0.3。 第二种方法是...
小数简便运算是小学数学的重要组成部分,对学生的计算能力和逻辑思维能力的提高具有重要影响。以下是根据提供的文件内容,总结出的一些重要的知识点: 一、 小数的概念和性质 小数是指带有小数点的数,如 12.45、...
解决这个问题的方法包括使用库函数进行更精确的小数运算,或者在可能的情况下避免使用浮点数进行精确计算。许多编程语言提供了数学库,它们可以执行更精确的算术运算,但往往需要更多的计算资源。在某些情况下,如果...
通过题目如3.84×2.6≈(保留一位小数)和0.125×1.4≈(保留两位小数),学生将学会如何在不进行精确计算的情况下,快速估算出结果。这不仅能够帮助学生在没有计算器的情况下进行有效的计算,也能在实际生活中用于...
小数运算定律主要涉及到小数乘法的简便计算和应用问题。这些定律是整数乘法运算定律的扩展,使得小数的计算更加简洁高效。以下是相关知识点的详细说明: 1. **乘法分配律**:小数乘法中同样适用乘法分配律,如在...