概述
BigDecimal的基本使用
-
作用
可以用来进行精确计算
-
构造方法
方法名 说明 BigDecimal(double val) 参数为double BigDecimal(String val) 参数为String -
常用方法
方法名 说明 public BigDecimal add(另一个BigDecimal对象) 加法 public BigDecimal subtract (另一个BigDecimal对象) 减法 public BigDecimal multiply (另一个BigDecimal对象) 乘法 public BigDecimal divide (另一个BigDecimal对象) 除法 public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法 -
总结
- BigDecimal是用来进行精确计算的
- 创建BigDecimal的对象,构造方法使用参数类型为字符串的。
- 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
代码示例:
BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式); 参数1 ,表示参与运算的BigDecimal 对象。 参数2 ,表示小数点后面精确到多少位 参数3 ,舍入模式 BigDecimal.ROUND_UP 进一法 BigDecimal.ROUND_FLOOR 去尾法 BigDecimal.ROUND_HALF_UP 四舍五入
-
应用
题目描述
对于一个 nn 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。
数据规模与约定
- 对于 50 %50% 的数据,保证 3 leq n leq 1003≤n≤100。
- 对于 100 %100% 的数据,保证 3 leq n leq 10^53≤n≤105。
-
这道题由于数据范围较大可将变量定义为BigDecimal 类型来解决。
-
题解
-
package com.javaqian.顺序结构; import java.math.BigInteger; import java.util.Scanner; /** * * 题目描述 * 对于一个n个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。 * 计算时的技巧 * 可将 n (n-1) (n-2) * (n-3) / 24 转化为 n (n-1) / 2 (n-2) / 3 * (n-3) / 4 * * 难点:高精度运算 */ public class LuoGu2181 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); BigInteger n=scanner.nextBigInteger(); BigInteger ans1=n.multiply(n.subtract(BigInteger.valueOf(1))); BigInteger ans2=ans1.divide(BigInteger.valueOf(2)); BigInteger ans3=ans2.multiply(n.subtract(BigInteger.valueOf(2))); BigInteger ans4=ans3.divide(BigInteger.valueOf(3)); BigInteger ans5=ans4.multiply(n.subtract(BigInteger.valueOf(3))); BigInteger ans6=ans5.divide(BigInteger.valueOf(4)); System.out.println(ans6); } }
最后
以上就是明亮海燕为你收集整理的BigDecimal的基本使用及应用场景BigDecimal的基本使用的全部内容,希望文章能够帮你解决BigDecimal的基本使用及应用场景BigDecimal的基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复