1.Java大数字运算—BigDecimal 类详解!除法除法
2.BigIntegerä¸BigDecimal
Java大数字运算—BigDecimal 类详解!源码源码
Java数学运算中,详解BigInteger和BigDecimal两类类用于处理大数字。除法除法其中,源码源码java点击源码BigInteger专为整型大数设计,详解synce源码分析而BigDecimal则加入小数概念,除法除法适用于高精度计算,源码源码特别在商业计算中精准处理货币值。详解
BigDecimal构造方法多样,除法除法支持基本运算。源码源码
加法:BigDecimal add(BigDecimal augend)
减法:BigDecimal subtract(BigDecimal subtrahend)
乘法:BigDecimal multiply(BigDecimal multiplieand)
除法:BigDecimal divide(BigDecimal divisor,详解int scale,int roundingMode)
divide()方法包含三个参数:除数、结果的除法除法bigjpg软件源码小数位数和舍入模式。
舍入模式列表包括:UP、源码源码DOWN、详解CEILING、FLOOR、nginxstream源码分析ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_HALF_EVEN、ROUND_UNNECESSARY。直播源码引流
示例代码展示如何使用BigDecimal进行运算并输出结果。
通过将用户输入的数字转换为BigDecimal对象,调用BigDecimal提供的运算方法执行加、减、乘、除操作。运行结果展示运算结果。
推荐学习课程:Java基础,包括Java集,涵盖优质视频,以图解形式深入学习Java。
项目实践:Java游戏项目,1小时教你用Java制作经典扫雷游戏,亲手开发游戏。
Java毕业设计项目:OA办公系统,实战开发员工管理系统,深入Java开发。
BigIntegerä¸BigDecimal
BigInteger - å»éªå³°çç½ç«
å¨Javaä¸ï¼ç±CPUåçæä¾çæ´åæ大èå´æ¯ä½ long åæ´æ°ãä½¿ç¨ long åæ´æ°å¯ä»¥ç´æ¥éè¿CPUæ令è¿è¡è®¡ç®ï¼é度é常快ã
å¦ææ们使ç¨çæ´æ°èå´è¶ è¿äº long åæä¹åï¼è¿ä¸ªæ¶åï¼å°±åªè½ç¨è½¯ä»¶æ¥æ¨¡æä¸ä¸ªå¤§æ´æ°ã java.math.BigInteger å°±æ¯ç¨æ¥è¡¨ç¤ºä»»æ大å°çæ´æ°ã BigInteger å é¨ç¨ä¸ä¸ª int[] æ°ç»æ¥æ¨¡æä¸ä¸ªé常大çæ´æ°ï¼
对 BigInteger åè¿ç®çæ¶åï¼åªè½ä½¿ç¨å®ä¾æ¹æ³ï¼ä¾å¦ï¼å æ³è¿ç®ï¼
å long åæ´æ°è¿ç®æ¯ï¼ BigInteger ä¸ä¼æèå´éå¶ï¼ä½ç¼ºç¹æ¯é度æ¯è¾æ ¢ã
ä¹å¯ä»¥æ BigInteger 转æ¢æ long åï¼
ä½¿ç¨ longValueExact() æ¹æ³æ¶ï¼å¦æè¶ åºäº long åçèå´ï¼ä¼æåº ArithmeticException ã
BigInteger å Integer ã Long ä¸æ ·ï¼ä¹æ¯ä¸å¯åç±»ï¼å¹¶ä¸ä¹ç»§æ¿èª Number ç±»ãå 为 Number å®ä¹äºè½¬æ¢ä¸ºåºæ¬ç±»åçå 个æ¹æ³ï¼
å æ¤ï¼éè¿ä¸è¿°æ¹æ³ï¼å¯ä»¥æ BigInteger 转æ¢æåºæ¬ç±»åãå¦æ BigInteger 表示çèå´è¶ è¿äºåºæ¬ç±»åçèå´ï¼è½¬æ¢æ¶å°ä¸¢å¤±é«ä½ä¿¡æ¯ï¼å³ç»æä¸ä¸å®æ¯åç¡®çãå¦æéè¦åç¡®å°è½¬æ¢æåºæ¬ç±»åï¼å¯ä»¥ä½¿ç¨ intValueExact() ã longValueExact() çæ¹æ³ï¼å¨è½¬æ¢æ¶å¦æè¶ åºèå´ï¼å°ç´æ¥æåº ArithmeticException å¼å¸¸ã
å¦æ BigInteger çå¼çè³è¶ è¿äº float çæ大èå´ï¼é£ä¹è¿åç float æ¯ä»ä¹å¢ï¼
å BigInteger ç±»ä¼¼ï¼ BigDecimal å¯ä»¥è¡¨ç¤ºä¸ä¸ªä»»æ大å°ä¸ç²¾åº¦å®å ¨åç¡®çæµ®ç¹æ°ã
éè¿ BigDecimal ç stripTrailingZeros() æ¹æ³ï¼å¯ä»¥å°ä¸ä¸ª BigDecimal æ ¼å¼å为ä¸ä¸ªç¸ççï¼ä½å»æäºæ«å°¾0ç BigDecimal ï¼
å¦æä¸ä¸ª BigDecimal ç scale() è¿åè´æ°ï¼ä¾å¦ï¼ -2 ï¼è¡¨ç¤ºè¿ä¸ªæ°æ¯ä¸ªæ´æ°ï¼å¹¶ä¸æ«å°¾æ2个0ã
å¯ä»¥å¯¹ä¸ä¸ª BigDecimal 设置å®ç scale ï¼å¦æ精度æ¯åå§å¼ä½ï¼é£ä¹æç §æå®çæ¹æ³è¿è¡åèäºå ¥æè ç´æ¥æªæï¼
对 BigDecimal åå ãåãä¹æ¶ï¼ç²¾åº¦ä¸ä¼ä¸¢å¤±ï¼ä½æ¯åé¤æ³æ¶ï¼åå¨æ æ³é¤å°½çæ åµï¼è¿æ¶ï¼å°±å¿ é¡»æå®ç²¾åº¦ä»¥åå¦ä½è¿è¡æªæï¼
è¿å¯ä»¥å¯¹ BigDecimal åé¤æ³çåæ¶æ±ä½æ°ï¼
è°ç¨ divideAndRemainder() æ¹æ³æ¶ï¼è¿åçæ°ç»å å«ä¸¤ä¸ª BigDecimal ï¼åå«æ¯ååä½æ°ï¼å ¶ä¸åæ»æ¯æ´æ°ï¼ä½æ°ä¸ä¼å¤§äºé¤æ°ãæ们å¯ä»¥å©ç¨è¿ä¸ªæ¹æ³å¤æ两个 BigDecimal æ¯å¦æ¯æ´æ°åæ°ï¼
å¨æ¯è¾ä¸¤ä¸ª BigDecimal çå¼æ¯å¦ç¸çæ¶ï¼è¦ç¹å«æ³¨æï¼ä½¿ç¨ equals() æ¹æ³ä¸ä½è¦æ±ä¸¤ä¸ª BigDecimal çå¼ç¸çï¼è¿è¦æ±å®ä»¬ç scale() ç¸çï¼
å¿ é¡»ä½¿ç¨ compareTo() æ¹æ³æ¥æ¯è¾ï¼å®æ ¹æ®ä¸¤ä¸ªå¼ç大å°åå«è¿åè´æ°ãæ£æ°å0ï¼åå«è¡¨ç¤ºå°äºã大äºåçäºã
æ»æ¯ä½¿ç¨ compareTo() æ¯è¾ä¸¤ä¸ª BigDecimal çå¼ï¼ä¸è¦ä½¿ç¨ equals() ï¼
å¦ææ¥ç BigDecimal çæºç ï¼å¯ä»¥åç°ï¼å®é ä¸ä¸ä¸ª BigDecimal æ¯éè¿ä¸ä¸ª BigInteger åä¸ä¸ª scale æ¥è¡¨ç¤ºçï¼å³ BigInteger 表示ä¸ä¸ªå®æ´çæ´æ°ï¼è scale 表示å°æ°ä½æ°ï¼
BigDecimal ä¹æ¯ä» Number 继æ¿çï¼ä¹æ¯ä¸å¯å对象ã