`
请输入用户名
  • 浏览: 46829 次
  • 性别: Icon_minigender_1
  • 来自: martian
社区版块
存档分类
最新评论

处理精确小数运算

阅读更多
处理精确小数运算
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]);
    }
} 
分享到:
评论

相关推荐

    精确小数计算器(含dll)

    阶乘运算在组合数学和概率论中广泛使用,精确小数计算器能处理极大数值的阶乘,这对于解决组合问题或者计算排列组合数量极其便利。通常,普通计算器在n值较大时会因溢出而无法计算阶乘,但这款工具能克服这一限制。 ...

    JavaScript小数点精确计算

    由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将深入探讨这个问题,并提供一些解决方案。 首先,我们来理解...

    jisuanqi.zip_小数计算器_小数运算_计算器 小数_计算器+小数_计算器小数

    总之,"jisuanqi.zip" 提供了一个专注于小数运算的计算器,它实现了基础的数学运算,适用于各种需要精确小数计算的场景。理解和实现这样的计算器程序,不仅可以提升编程技能,还能深入理解小数运算背后的数学原理和...

    ArithmeticUtils用于高精确处理常用的数学运算工具类

    ArithmeticUtils用于高精确处理常用的数学运算工具类 提供精确的加法运算 提供精确的减法运算 提供精确的乘法运算 提供(相对)精确的除法运算,当发生除不尽的情况时...提供精确的小数位四舍五入处理 取余数 比较大小

    小数乘法计算练习(二)

    总的来说,这个小数乘法计算练习旨在提高学生对小数乘法规则的理解,包括口算、竖式计算、保留小数位数的处理、判断改错和实际应用,这些都是小学数学教育的重要组成部分。通过这样的练习,学生能够更好地掌握小数...

    KeilC-51下快速小数运算算法.PDF

    这份名为“Keil C-51下快速小数运算算法”的文档,显然关注的是如何在这款编译器环境下,有效地进行浮点或定点小数的计算。在嵌入式系统中,由于资源有限,高效的数学运算尤为重要,特别是对于涉及到实时性要求的...

    五年级小数四则混合运算200题.doc

    这份练习包含了200道不同的问题,覆盖了各种小数运算场景,包括精确计算和近似值计算,以及涉及循环小数的处理。 首先,练习中的乘法运算涵盖了不同位数的小数相乘,例如:5.6×2.9、3.77×1.8、0.02×96等。这些...

    python执行精确的小数计算方法

    在进行浮点数计算时它们无法精确表达出所有的十进制小数位。 a = 4.1 b = 5.329 print(a+b) 9.428999999999998 这些误差实际上是底层CPU的浮点运算单元和IEEE754浮点数算数标准的一种“特性”。python的浮点数类型...

    定点小数的运算器,有加减等

    在JAVA编程中,处理定点小数运算可以使用`BigDecimal`类,它支持任意精度的十进制运算,包括加、减、乘、除以及比较等操作。`BigDecimal`提供了丰富的构造函数和方法,可以方便地实现定点小数的各种运算,同时也支持...

    小数计算练习题.doc

    这些练习题旨在帮助学生熟练掌握小数的计算规则,提高计算速度和准确性,同时理解和应用小数运算在实际问题中的应用。通过反复练习,可以提升对小数运算的直观感觉和运算技巧,为进一步学习更复杂的数学概念打下坚实...

    用小数计算下面各题.doc

    小数是一种表达部分数值的方式,特别适用于处理货币、长度、重量等具有精确度量的场景。下面是针对每个问题的详细解答: 1. 9元5角3分 + 6角8分 = 9.53元 + 0.68元 = 10.21元 这里的计算是将人民币的元、角、分转换...

    java实现小数、百分数值处理组件

    处理小数时,我们可能会遇到舍入问题,这时可以使用`BigDecimal`类,它提供了更精确的浮点数运算,避免了由于浮点数计算的误差导致的结果不准确。 对于小数的四舍五入,Java提供了`Math.round()`方法,它可以将一个...

    C#中处理多位小数精度的精度问题

    在C#编程中,处理多位小数的精度问题是一个常见的挑战。这主要涉及到浮点数和定点数的数据类型,以及它们在数学运算中可能出现的精度损失。本文将深入探讨这个问题,并提供解决方案。 首先,让我们理解为何会出现...

    java精度计算代码 java指定精确小数位

    总结起来,Java中进行精度计算并指定精确小数位,应使用`BigDecimal`类,通过`DecimalFormat`进行格式化,并结合`setScale`方法来设定小数位数。这个过程可以有效地避免浮点数运算中的精度问题,确保计算结果的准确...

    js小数运算出现多位小数如何解决

    但这种做法存在精度问题,它实际上是对数字进行了四舍五入,所以在处理精确的小数运算时可能不够准确。比如,使用toFixed(1)对0.1+0.2进行处理后,得到的数值在数学上仍然是0.***,而不是精确的0.3。 第二种方法是...

    北师大四年级下小数简便运算专项练习题.doc

    小数简便运算是小学数学的重要组成部分,对学生的计算能力和逻辑思维能力的提高具有重要影响。以下是根据提供的文件内容,总结出的一些重要的知识点: 一、 小数的概念和性质 小数是指带有小数点的数,如 12.45、...

    js为什么不能正确处理小数运算?

    解决这个问题的方法包括使用库函数进行更精确的小数运算,或者在可能的情况下避免使用浮点数进行精确计算。许多编程语言提供了数学库,它们可以执行更精确的算术运算,但往往需要更多的计算资源。在某些情况下,如果...

    小数运算定律.pdf

    小数运算定律主要涉及到小数乘法的简便计算和应用问题。这些定律是整数乘法运算定律的扩展,使得小数的计算更加简洁高效。以下是相关知识点的详细说明: 1. **乘法分配律**:小数乘法中同样适用乘法分配律,如在...

    js ,加法,减法,乘法,除法,小数点精确计算

    js ,加法,减法,乘法,除法,计算完之后,很多小数点,比如0.3 / 3 = 0.09999999999999999,尤其是在金钱方面万万不能四舍五入,加减乘除封装为方法,方便调用,完美解决

Global site tag (gtag.js) - Google Analytics