Java实现大数运算

Java实现大数运算一 大数运算介绍 nbsp 大数运算 顾名思义 就是很大的数值的数进行一系列的运算 它是指由于编程语言提供的基本数值数据类型表示的数值范围有限 不能满足较大规模的高精度数值计算 因此需要利用其他方法实现高精度数值的计算 于是产生了大数运算 二 Java 实现大数运算方法 nbsp nbsp nbsp nbsp 在 BigDecimal 用法详解这篇文章中给大家介绍了 Java 中的大数类 Bi

一、大数运算介绍

  大数运算,顾名思义,就是很大的数值的数进行一系列的运算。它是指由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算,于是产生了大数运算。

二、Java实现大数运算方法

       在BigDecimal用法详解这篇文章中给大家介绍了Java中的大数类BigDecimal的用法,那么在Java中我们实现大数运算时便可以使用这个类进行快速简便的实现。

  • 实现代码如下:
  • import java.math.BigDecimal; class BigDecimalDemo { static final int location = 10; //小数点后位数 //加法 返回 num1+num2 public double add(double num1, double num2){ BigDecimal b1 = new BigDecimal(num1); BigDecimal b2 = new BigDecimal(num2); return b1.add(b2).doubleValue(); } //减法 返回 num1-num2 public double sub(double num1, double num2){ BigDecimal b1 = new BigDecimal(num1); BigDecimal b2 = new BigDecimal(num2); return b1.subtract(b2).doubleValue(); } //乘法 返回 num1*num2 public double mul(double num1, double num2){ BigDecimal b1 = new BigDecimal(num1); BigDecimal b2 = new BigDecimal(num2); return b1.multiply(b2).doubleValue(); } //除法 返回 num1/num2 public double div(double num1, double num2){ return div(num1,num2,location); } //除法 返回num1/num2 自定义小数点后位数 public double div(double num1, double num2, int _location){ BigDecimal b1 = new BigDecimal(num1); BigDecimal b2 = new BigDecimal(num2); return b1.divide(b2,_location,BigDecimal.ROUND_HALF_UP).doubleValue(); } public static void main(String[] args) { BigDecimalDemo bd = new BigDecimalDemo(); System.out.println(bd.add(12.,2)); //14. System.out.println(bd.sub(12.123,5.1)); //7.023 System.out.println(bd.mul(9.99999,8.8888)); //88. System.out.println(bd.div(13,3)); //4. 小数点后10位 System.out.println(bd.div(13,3,20)); //4.3333 小数点后15位 double b = 4.23123; //4.3123 double小数点后15位 System.out.println(b); BigDecimal b2 = new BigDecimal(4.23123); //4. System.out.println(b2); } }


  • 这篇文章只是提供了一种大家在平时需要使用大数运算的场合下一种快捷的实现,只是对Java的相关API进行的封装,并未涉及算法实现原理。至于对大数运算的底层实现有兴趣的人,可以研究Java大数类的实现源码。
    三、实现总结


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233564.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Activiti6详细教程

    Activiti6详细教程一、为什么选择Activitiactiviti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。工作流引擎对比二、核心7大接口、28张表7大接口(一)7大接口RepositoryService:提供一系列管理流程部署和流程…

    2022年7月21日
    38
  • FCN—tensorflow版本代码超详解

    FCN—tensorflow版本代码超详解FCN—tensorflow版本代码详解

    2022年8月30日
    3
  • paloalto防火墙内存使用率高

    paloalto防火墙内存使用率高

    2021年7月4日
    80
  • QT基本介绍

    QT基本介绍一、什么是QT?Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。二、发展历史1991年Qt最早由奇趣科技开发1996年进入商业领域,它也是目前流行的Linux桌面环境…

    2022年5月13日
    109
  • dll和so的区别_dllor

    dll和so的区别_dllor动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过程的一部分。在这些系统上,可执行文件包含一个叫做importdirecto

    2022年9月2日
    5
  • c#程序中的AssemblyInfo.cs

    c#程序中的AssemblyInfo.cs在asp.net中有一个配置文件AssemblyInfo.cs主要用来设定生成的有关程序集的常规信息dll文件的一些参数,下面是默认的AssemblyInfo.cs文件的内容具体介绍//是否符合公共语言规范(CLS)[assembly:CLSCompliant(true)]//控制程序集中所有类型对COM的可访问性[assembly:ComVisible(false)]//代码的作者和这…

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号