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

欧美免费1级做爰片在线观看网站淘宝直通车

欧美免费1级做爰片在线观看网站,淘宝直通车,网站备案负责人 更换,wordpress主题限速BigDecimal 是 Java 中用于高精度计算的类,特别适合需要精确十进制运算的场景,如金融计算、货币运算、概率计算等。 为什么需要 BigDecimal类 解决浮点数精度问题:float 和 double 使用二进制浮点运算,无法精确表示某些十进制小数…

BigDecimal 是 Java 中用于高精度计算的类,特别适合需要精确十进制运算的场景,如金融计算、货币运算、概率计算等。

为什么需要 BigDecimal类

  1. 解决浮点数精度问题float 和 double 使用二进制浮点运算,无法精确表示某些十进制小数(如 0.1)

  2. 精确计算需求:在财务、税务等场景中,舍入误差是不可接受的

  3. 大数处理:可以处理非常大的数,且保持精度

使用 double 进行金融计算时可能出现精度问题:

System.out.println(0.1 + 0.2);  // 输出 0.30000000000000004

BigDecimal 可以精确表示和计算十进制数:

BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
System.out.println(a.add(b));  // 输出 0.3

创建 BigDecimal 对象

有几种创建 BigDecimal对象 的方式:

使用字符串构造器(推荐,避免精度问题):

BigDecimal a = new BigDecimal("0.1");

使用 double 构造器(不推荐,可能有精度问题):

BigDecimal b = new BigDecimal(0.1);

使用 valueOf 静态方法:

BigDecimal c = BigDecimal.valueOf(0.1);

使用整数构造:

BigDecimal d = new BigDecimal(1);

基本运算

BigDecimal 提供了各种数学运算方法,所有方法都返回新的 BigDecimal 对象(不可变性):

BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");// 加法
BigDecimal sum = a.add(b);  // 13// 减法
BigDecimal difference = a.subtract(b);  // 7// 乘法
BigDecimal product = a.multiply(b);  // 30// 除法
BigDecimal quotient = a.divide(b, 2, RoundingMode.HALF_UP);  // 3.33// 取余
BigDecimal remainder = a.remainder(b);  // 1

精度和舍入模式

BigDecimal 允许控制计算的精度和舍入方式:

BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");// 除法时指定精度和舍入模式
BigDecimal result = a.divide(b, 4, RoundingMode.HALF_UP);  // 3.3333

常用舍入模式:

  • RoundingMode.UP - 远离零方向舍入

  • RoundingMode.DOWN - 向零方向舍入

  • RoundingMode.CEILING - 向正无穷方向舍入

  • RoundingMode.FLOOR - 向负无穷方向舍入

  • RoundingMode.HALF_UP - 四舍五入

  • RoundingMode.HALF_DOWN - 五舍六入

  • RoundingMode.HALF_EVEN - 银行家舍入法

比较操作

不要使用 equals()方法 比较 BigDecimal,因为它会同时比较值和精度,推荐使用 compareTo() 方法进行值比较:

BigDecimal a = new BigDecimal("2.0");
BigDecimal b = new BigDecimal("2.00");System.out.println(a.equals(b));  // false
System.out.println(a.compareTo(b) == 0);  // true 

对于compareTo的返回值:

  • 0表示相等
  • 1表示a>b
  • -1表示a<b

BigDecimal 中的常用常量详解

BigDecimal 类提供了一些非常有用的常量,这些常量可以简化代码编写,提高代码可读性。

BigDecimal类 中定义了以下常用常量:

BigDecimal.ZERO    // 表示0
BigDecimal.ONE     // 表示1
BigDecimal.TEN     // 表示10

这些常量都是 public static final修饰的,可以直接使用。

详解:

BigDecimal.ZERO

表示数值0的 BigDecimal 对象。

使用场景:

  • 初始化累加变量

  • 比较操作

  • 作为计算的基准值

示例代码:

// 初始化累加器
BigDecimal sum = BigDecimal.ZERO;// 比较操作
if (amount.compareTo(BigDecimal.ZERO) > 0) {System.out.println("金额为正数");
}// 作为计算的基准值
BigDecimal result = someCalculation().add(BigDecimal.ZERO);

BigDecimal.ONE

表示数值1的 BigDecimal 对象。

使用场景:

  • 单位计算

  • 比例计算

  • 作为乘数或除数

示例代码:

// 计算百分比
BigDecimal hundred = new BigDecimal("100");
BigDecimal percentage = value.divide(hundred, 4, RoundingMode.HALF_UP).multiply(BigDecimal.ONE);// 作为乘数
BigDecimal doubledValue = originalValue.multiply(BigDecimal.ONE.add(BigDecimal.ONE));// 单位转换
BigDecimal kmToM = distanceInKm.multiply(new BigDecimal("1000").multiply(BigDecimal.ONE));

BigDecimal.TEN

表示数值10的 BigDecimal 对象。

使用场景:

  • 十进制计算

  • 单位转换

  • 比例缩放

示例代码:

// 十进制转换
BigDecimal centimeters = meters.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);// 计算平均数
BigDecimal average = sum.divide(count, 2, RoundingMode.HALF_UP).multiply(BigDecimal.TEN).divide(BigDecimal.TEN);// 比例缩放
BigDecimal scaledValue = originalValue.movePointRight(1).divide(BigDecimal.TEN, 2, RoundingMode.HALF_UP);

使用常量的优势

  1. 提高代码可读性BigDecimal.ZERO 比 new BigDecimal("0") 更直观

  2. 避免重复创建对象:常量只创建一次,可以重复使用

  3. 减少错误:避免手动创建时可能的输入错误

  4. 性能优化:减少不必要的对象创建

最佳实践

  1. 优先使用字符串构造器:避免 double 构造器的精度问题

  2. 指定舍入模式:特别是除法运算时

  3. 使用 compareTo 比较值:而不是 equals

  4. 注意不可变性:所有运算都返回新对象

  5. 考虑性能BigDecimal 运算比基本类型慢

http://www.dtcms.com/wzjs/92632.html

相关文章:

  • wordpress全站pjax广安seo外包
  • 京东的网站是哪家公司做今日百度搜索风云榜
  • wordpress调用导航菜单aso优化吧
  • 兰州学校网站建设新闻稿范文300字
  • 论坛网站如何备案北京seo优化方案
  • 哪个网站做初中作业网络推广公司主要做什么
  • ui培训班 qfeduseo外包优化
  • 网站为什么会出现死链如何让产品吸引顾客
  • 做网站枣庄百度新闻下载安装
  • 分析网站关键词优化公司推荐
  • 广东省党的建设研究会网站目前常用的搜索引擎有哪些
  • 外星人做的网站进入百度搜索首页
  • wordpress删除 自豪的优化大师优化项目有哪些
  • 南京网站设计的公司北京网站建设公司案例
  • 做网站的无锡公众号软文怎么写
  • 如何做适合网站大小的图片关键词网站推广
  • 阿里巴巴的免费b2b网站抖音矩阵排名软件seo
  • 做网站的条件高端网站建设制作
  • 建材销售网站手机模板经典模板网站建设
  • 揭阳企业网页制作公司seo业务培训
  • 县城做网站的多么网络推广公司介绍
  • 河南网站建设公微博营销策略
  • 企业网站建设admin最权威的排行榜网站
  • 网站改版什么意思网站制作
  • 华为云免费服务器长尾词seo排名
  • 个人网站 名称品牌营销推广方案怎么做
  • 网站建设电脑端手机端百度推广工资多少钱一个月
  • 模板网站与定制开发网站的区别seo范畴
  • 遵化市有做奇麟网站的吗怎么推广自己的网站
  • 展示类网站模板网站手机版排名seo