处理精确小数运算
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下快速小数运算算法”的文档,显然关注的是如何在这款编译器环境下,有效地进行浮点或定点小数的计算。在嵌入式系统中,由于资源有限,高效的数学运算尤为重要,特别是对于涉及到实时性要求的...
这份练习包含了200道不同的问题,覆盖了各种小数运算场景,包括精确计算和近似值计算,以及涉及循环小数的处理。 首先,练习中的乘法运算涵盖了不同位数的小数相乘,例如:5.6×2.9、3.77×1.8、0.02×96等。这些...
在进行浮点数计算时它们无法精确表达出所有的十进制小数位。 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()`方法,它可以将一个...
在C#编程中,处理多位小数的精度问题是一个常见的挑战。这主要涉及到浮点数和定点数的数据类型,以及它们在数学运算中可能出现的精度损失。本文将深入探讨这个问题,并提供解决方案。 首先,让我们理解为何会出现...
总结起来,Java中进行精度计算并指定精确小数位,应使用`BigDecimal`类,通过`DecimalFormat`进行格式化,并结合`setScale`方法来设定小数位数。这个过程可以有效地避免浮点数运算中的精度问题,确保计算结果的准确...
但这种做法存在精度问题,它实际上是对数字进行了四舍五入,所以在处理精确的小数运算时可能不够准确。比如,使用toFixed(1)对0.1+0.2进行处理后,得到的数值在数学上仍然是0.***,而不是精确的0.3。 第二种方法是...
小数简便运算是小学数学的重要组成部分,对学生的计算能力和逻辑思维能力的提高具有重要影响。以下是根据提供的文件内容,总结出的一些重要的知识点: 一、 小数的概念和性质 小数是指带有小数点的数,如 12.45、...
解决这个问题的方法包括使用库函数进行更精确的小数运算,或者在可能的情况下避免使用浮点数进行精确计算。许多编程语言提供了数学库,它们可以执行更精确的算术运算,但往往需要更多的计算资源。在某些情况下,如果...
小数运算定律主要涉及到小数乘法的简便计算和应用问题。这些定律是整数乘法运算定律的扩展,使得小数的计算更加简洁高效。以下是相关知识点的详细说明: 1. **乘法分配律**:小数乘法中同样适用乘法分配律,如在...
js ,加法,减法,乘法,除法,计算完之后,很多小数点,比如0.3 / 3 = 0.09999999999999999,尤其是在金钱方面万万不能四舍五入,加减乘除封装为方法,方便调用,完美解决