JAVA大数值问题总结
来源:互联网 发布:移动云商城 源码下载 编辑:程序博客网 时间:2024/05/01 15:06
大数值问题:
如果基本的整数(如:int、long)和浮点数的精度不狗满足需求时,那么就可以用java.math包中的两个类BigInteger(任意精度的整数)和BigDecimal(任意精度的浮点数).
这两个类可以实现人一次长度数字的数值
BigInteger a = BigInteger.valueOf(100);//把100转换为大数类型的整数使用valueOf()方法可以将普通的数值转化为大数
那么接下来,怎么用大数实现数值运算呢?
在JAVA中提供加法方法就是:
BigInteger sum = a.add(b);//c = a + b;BigInteger ji = a.multiply(b.add(BigInteger.valueOf(2)));//ji = a * ( b + 2)
注:
和C++不同,java只提供了字符串的连接,重载了+运算符,java没有提供运算符的重载功能,也没有给java程序员在自己的类中写运算符重载的机会。
计算组合数:
c = c.multiply(BigInteger.valueOf(n-i+1).divide(BigInteger.valueOf(i)));//(n-i+1)/i
/** 描述: 有n个球,一手可以抓m个,问有多少抓取方式,n以0输入结束 思路: 应用java.math包中的BigInteger类 运用a.multiply(b)得出a*b积 */import java.math.BigInteger;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner in = new Scanner(System.in);int n = 1,m;//求C(m,n)的组合数while(0!=n){n = in.nextInt();m = in.nextInt();BigInteger c = BigInteger.valueOf(1);for(int i = 1;i<=m;i++){c = c.multiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));}System.out.println(c);}}}
BigInteger:
//BigInteger add(BigInteger it)// 求和//BigInteger subtract(BigInteger it) //求差//BigInteger multiply(BigInteger it) //求积//BigInteger divide(BigInteger it) //求商//BigInteger mod(BigInteger it) //求模//int compareTo (BigInteger it) //用于判断两个大数的大小,该大数与另一个大数it相等,返回0,小于,返回负,大于返回正//static BigInteger.valueOf(long x)static BigInteger valueOf(long xx)//返回值 等于xx 的大整数
BigDecimal:
BigDecimal add(BigDecimal it)// 求和BigDecimal subtract(BigDecimal it) //求差BigDecimal multiply(BigDecimal it) //求积BigDecimal mod(BigDecimal it) //求模
例外:
BigDecimal divide(BigDecimal it RoundingMode mode)5.0//四舍五入想要计算必须要给出舍入方式,至于其他的舍入方式可以参考API文档static BigDecimal valueOf(long x) //返回值等于x的大实数static BigDecimal valueOf(long x,int k)//返回值为 x/(10的k次方)的大实数
0 0
- JAVA大数值问题总结
- Java 大数值
- Java中的大数值
- Java 大数值计算
- JAVA 大数值
- Java大数值
- Java 大数值
- Java大数值
- java 大数值
- 【JAVA核心技术】 大数值 BigDecimal
- java基础之大数值
- 【44】java大数值剖析
- java大数值与数组
- java大数值学习笔记
- 字符串数值转换问题总结
- Java数值计算的总结
- Java编码格式问题大总结
- iTween中的大数值精度问题
- MATLAB对tiff格式图像序列的读取与导出
- 计算机笔试/面试题
- RTX 实时操作系统简介
- 红黑树
- Cocos2d3x环境搭建参考博客
- JAVA大数值问题总结
- Asteroids!(三维BFS)
- 三分钟学会 JavaScript 单元测试
- 为什么选择RTX
- POJ 3261 SA
- 单片机小白学步系列(六) 单片机最小系统——麻雀虽小,五脏俱全
- HDU - 5038 Grade
- Handler将Runnable放入线程队列,removecallback()移除Runnable
- C++ primer 第十六章 继承构造函数