当前位置: 首页 > news >正文

wordpress 手机管理员密码/关键词优化seo

wordpress 手机管理员密码,关键词优化seo,请问我做吉利网站吉利啊,做游戏网站给人诈骗大数类摘要BigInteger 和 BigDecimal创建赋值加法减法乘法除法*取余*求最大公因数求最值*(a^b)%mod比较大小*进制转化类型转化-BigDecimal的精度问题保留n位小数摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1, 对应的十进制数是9223372036854775807&#xff0…

大数类

  • 摘要
  • BigInteger 和 BigDecimal
    • 创建
    • 赋值
    • 加法
    • 减法
    • 乘法
    • 除法
    • *取余
    • *求最大公因数
    • 求最值
    • *(a^b)%mod
    • 比较大小
    • *进制转化
    • 类型转化
    • -BigDecimal的精度问题
      • 保留n位小数

摘要

java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1,
对应的十进制数是9223372036854775807,也就是说只要运算过程中会超过这个数,就会造成数据溢出,从而造成错误.

  1. java.math.*包中提供了大数类,其理论上可以存储无限位的大数,只要内存足够的话。
  2. 大数类又分为整数和浮点数.即BigInteger and BigDecimal
  3. 大数类的对象不能直接进行运算,需要调用类中相应的方法,并且方法的参数必须和调用的类相同,BigInteger不能调用BigDecimal, 不能作为其方法参数, 即整数和浮点数不能混合运算.
  4. 本文举例了一些常用的方法,不需要背会,需要用的时候查java API就行了。

了解其他常用API和算法点这里 >> https://blog.csdn.net/GD_ONE/article/details/104061907

BigInteger 和 BigDecimal

创建

//1.直接声明 
BigInteger a;
BigDecimal b;
//2.使用构造函数初始化
BigInteger a = new BigInteger("123456789101112131415");
BigDecimal b = new BigDecimal("123456.123456");

赋值

  1. BigInteger.valueOf(long val);
    BigDecimal.valueOf(double val);

    BigInteger a;
    BigDecimal b;
    //注意 val 不能超过 long 类型的最大取值9223372036854775807, 超过int时要在数后面加L如:
    a = BigInteger.valueOf(123456789101112L); //大于int范围的要加L
    b = BigDecimal.valueOf(123456.12341235); // 超出的小数位数会自动舍弃 
    
  2. 使用 = 将同类型变量的值赋给另一个变量

    BigInteger a;
    BigInteger b = new BigInteger("123456");
    a = b;
    System.out.print(a);输出:
    123456
    

加法

BigInteger.add(BigInteger);
BigDecimal.add(BigDecimal);

BigInteger a, b, c;
a = BigInteger.valueOf(123456789); // 赋值为 123456789
b = BigInteger.valueOf(987654321); // 赋值为 987654321
c = a.add(b);
System.out.print(c);
输出:
1111111110 
1111111110 

减法

BigInteger.subtract(BigInteger);
BigDecimal.sbutract(BigDecimal);

BigInteger a, b, c;
a = BigInteger.valueOf(123456789); // 赋值为 123456789
b = BigInteger.valueOf(987654321); // 赋值为 987654321
c = a.subtract(b);
System.out.print(c);输出:
-864197532

乘法

BigInteger.multiply(BigInteger);
BigDecimal.multiply(BigDecimal);

BigInteger a, b, c;
a = BigInteger.valueOf(123456789); // 赋值为 123456789
b = BigInteger.valueOf(987654321); // 赋值为 987654321
c = a.multiply(b);
System.out.print(c);输出:
121932631112635269

除法

BigInteger.divide(BigInteger);
BigDecimal.divide(BigDecimal);

BigInteger a, b, c;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
c = a.divide(b); // 整数相除仍为整数
System.out.print(c);输出:
8

*取余

BigInteger.mod(BigInteger);

BigInteger a, b, c;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
c = a.mod(b);
System.out.print(c);输出:
9

*求最大公因数

BigInteger.gcd(BigInteger);

BigInteger a, b, c;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
c = a.gcd(b);
System.out.print(c);输出:
9

求最值

BigInteger.max(BigInteger) , BigDecimal.max(BigDecimal) 最大值
BigInteger.min(BigInteger) , BigDecimal.min(BigDecimal) 最小值

BigInteger a, b, c, d;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
c = a.max(b); //a,b中的最大值
d = a.min(b); //a,b中的最小值
System.out.println(c);
System.out.println(d);输出:
987654321
123456789

*(a^b)%mod

BigInteger.modPow(BigInteger, BigInteger);

BigInteger a, b, c, mod;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
mod = BigInteger.valueOf(10007);  
c = a.modPow(b, mod); //(a^b)%mod
System.out.println(c);
输出:
718

比较大小

BigInteger.compareTo(BigInteger);
BigDecimal.compareTo(BigDecimal);

BigInteger a, b;
int c;
a = BigInteger.valueOf(987654321); // 赋值为 987654321
b = BigInteger.valueOf(123456789); // 赋值为 123456789
c = a.compareTo(b);  // a 和 b
System.out.println(c); 
c = b.compareTo(b);  // b 和 b
System.out.println(c);
c = b.compareTo(a);   // c 和 c
System.out.println(c);
输出:
1   
0
-1
可见, 对于a.compareTo(b), a和b进行比较如果:
a > b  返回 1  
a == b 返回 0 
a < b  返回-1

*进制转化

使用构造函数BigInteger(String, int index);可以把一个index进制的字符串,转化为10进制的BigInteger;

BigInteger a = new BigInteger("111110", 2);111110变为10进制赋值给a
System.out.println(a.toString(16));把a转化为16进制的字符串输出

类型转化

BigInteger.toBigDecimal() //把BigInteger 转化为 BigDecimal
BigDecimal.toBigInteger() //把BigDecimal 转化为 BigInteger

	BigInteger a = new BigInteger(1);BigDecimal b = new BigDecimal(2);b.toBigInteger(); // 把BigDecimal转为BigIntegera.toBigDecimal(); // 把BigInteger转为BigDecimal

-BigDecimal的精度问题

BigDecimal的舍入模式
想象一个数轴,从负无穷到正无穷,向哪舍入,就是趋向于哪, 向0就是舍入后要更趋近于0.

ROUND_DOWN 向零舍入。 即1.55 变为 1.5 , -1.55 变为-1.5
ROUND_CEILING 向正无穷舍入. 即 1.55 变为 1.6 , -1.55 变为 -1.5
ROUND_FLOOR 向负无穷舍入. 即 1.55 变为 1.5 , -1.55 变为 -1.6
ROUND_HALF_UP 四舍五入 即1.55 变为1.6, -1.55变为-1.6
ROUND_HALF_DOWN 五舍六入 即 1.55 变为 1.5, -1.5变为-1.5
ROUND_HALF_EVEN 如果舍入前一位的数字为偶数,则采用HALF_DOWN奇数则采用HALF_UP 如1.55 采用HALF_UP 1.45采用HALF_DOWN
ROUND_UP 向远离0的方向舍入 即 1.55 变为 1.6 , -1.55 变为-1.6
ROUND_UNNECESSARY 有精确的位数时,不需要舍入

在需要精确舍入的方式时可以使用以上的舍入模式。
(另:Math 类的 ceil()和 floor方法对应普通浮点型的上取整和下取整.)
BigDecimal进行加减乘除时可以进行舍入
如 除法

divide(BigDecimal divisor, int scale, RoundingMode roundingMode) 返回一个
BigDecimal ,其值为 (this / divisor) ,其小数位数为scale。

import java.math.*;
import java.util.*;
import java.io.*;
public class Main{public static void main(String[] args){ BigDecimal a, b, c;a = BigDecimal.valueOf(1.51);b = BigDecimal.valueOf(1.37);c = a.divide(b,100,BigDecimal.ROUND_DOWN);//采用向0舍入并并保留100位小数System.out.println(c);}
}
输出:
1.1021897810218978102189781021897810218978102189781021897810218978102189781021897810218978102189781021

保留n位小数

setScale(int newScale, RoundingMode roundingMode);

import java.math.*;
import java.util.*;
import java.io.*;
public class Main{public static void main(String[] args){ BigDecimal a = new BigDecimal("1.10218");a = a.setScale(4,BigDecimal.ROUND_HALF_UP);//四舍五入保留四位小数System.out.println(a);}
}
http://www.jmfq.cn/news/5205835.html

相关文章:

  • 高明专业网站建设哪家好/百度搜索优化建议
  • 外贸营销网站建设公司排名/班级优化大师简介
  • 做公司网站需要准备什么/代运营公司是怎么运营的
  • 住房和城乡建设部网站施工员证/seo查询平台
  • 什么软件可以在手机上做装修设计/天津网站seo设计
  • 色一把做最好的看片网站/双滦区seo整站排名
  • 网站多语言建设/网站域名解析ip查询
  • 定制型网站一般价格/宁波做seo推广企业
  • 体彩网站开发/百度推广营销
  • asp.net做网站教程/seo软件全套
  • 免费ppt资源网站/seo托管服务
  • 杭州微网站建设/网站推广关键词排名优化
  • vps做网站用什么系统/天津百度推广公司地址
  • 静态网站模板源码下载/重庆关键词优化平台
  • 网站建设得缺点/成都短视频代运营
  • 火狐浏览器网站开发人员/最近新闻大事件
  • 做网站的/英文seo
  • 网站首页设计/今天特大军事新闻
  • 网站建设的论文的参考文献/网站推广的一般流程是
  • 网站空间指的是什么意思/上海网站seo外包
  • 网站创建知识/网络推广公司简介
  • 自适应网站建设优化建站/在线刷seo
  • 建设厅网站查询三类人员/中国十大营销策划公司排名
  • 杭州知名网站建设/好视通视频会议app下载安装
  • 网站套站是什么意思/全网营销是什么
  • 广州哪里有网站开发/小米口碑营销案例
  • 网站数据比较/聊城网站推广的公司
  • 水果网站系统的建设与实现/微信引流主动被加软件
  • 建网站要多少钱 优帮云/百度学术论文查重官网
  • web网站开发主流框架/搜狗网站收录