大数字的计算
Posted dayu007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数字的计算相关的知识,希望对你有一定的参考价值。
package object; import java.math.BigDecimal; import java.math.BigInteger; /** * @author dayu * @Describe 大数字的计算 */ public class BigIntegerDemo { public static void main(String[] args) { BigInteger bigInteger1 = new BigInteger("45645645645645645645645645645645645612321321312321312321456"); BigInteger bigInteger2 = new BigInteger("45645645645612321321312321312321"); System.out.println("加法:" + bigInteger1.add(bigInteger2)); System.out.println("减法:" + bigInteger1.subtract(bigInteger2)); System.out.println("乘法:" + bigInteger1.multiply(bigInteger2)); System.out.println("除法:" + bigInteger1.divide(bigInteger2)); BigInteger[] divideAndRemainder = bigInteger1.divideAndRemainder(bigInteger2); System.out.println("商商:" + divideAndRemainder[0] + ",余" + divideAndRemainder[1]); System.out.println(roundAndHalf(1234556.1415354,2)); } /** * ·四舍五入的进位方法 * @param num 源数据 * @param scale 进位数 * @return */ private static double roundAndHalf(double num,int scale) { return new BigDecimal(num).divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } }
一般计算:
package object; /** * @author dayu */ public class MathDemo { public static void main(String[] args) { long round = Math.round(12.3); System.out.println(round); //自定义方法 double round3 = round(123.563482, 4); System.out.println(round3); } /** * ·保留小数的四舍五入 * @param num 原始数据源 * @param scale 要保留的小数 * @return */ public static double round(double num, int scale) { return Math.round(num * Math.pow(10, scale)) / Math.pow(10, scale); } }
以上是关于大数字的计算的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段