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

有人情味的网站免费制作广州网站

有人情味的网站,免费制作广州网站,感叹号分销系统,专业软件开发培训机构系列文章目录 java中BigDecimal的介绍及使用#xff0c;BigDecimal格式化#xff0c;BigDecimal常见问题java中BigDecimal的介绍及使用(二) 文章目录 系列文章目录一、前言二、BigDecimal提供的方法2.1、stripTrailingZeros() 去除小数尾部所有的02.2、int signum()2.3、int…系列文章目录 java中BigDecimal的介绍及使用BigDecimal格式化BigDecimal常见问题java中BigDecimal的介绍及使用(二) 文章目录 系列文章目录一、前言二、BigDecimal提供的方法2.1、stripTrailingZeros() 去除小数尾部所有的02.2、int signum()2.3、int scale()2.4、intValue()2.5、intValueExact()2.6、unscaledValue()2.7、remainder(BigDecimal divisor)2.8、divideAndRemainder(BigDecimal divisor) 三、进阶3.1、获取BigDecimal整数部分、小数部分、整数位数、小数位数 一、前言 在上一篇文章 《java中BigDecimal的介绍及使用BigDecimal格式化BigDecimal常见问题 》 中主要介绍了BigDecimal的加减乘除运算及格式化方面的使用本篇主要介绍其他相关的内容。 二、BigDecimal提供的方法 加减乘除等常用的方法在上一篇中已经提过本篇不再重复写主要讲一下其他可能用到的方法 方法含义BigDecimal stripTrailingZeros()去除小数尾部所有的0并返回一个BigDecimal类型的数据,不能保证不是科学计数法int signum()返回BigDecimal的正负号 1正数 0零 -1负数int scale()该方法返回此BigDecimal的小数位数。对于零或正值小数位数是小数点右边的位数。对于负值数字的未标度值乘以十即标度取反的幂。int intValue()返回int数值小数点后面的数值直接省略int intValueExact()返回int数值小数点后面的数值直接省略若BigDecimal对象的值超出int类型取值范围抛出异常BigInteger toBigInteger()返回BigInteger数值BigInteger理论上是负无穷到正无穷之间BigInteger unscaledValue()此方法返回一个BigInteger其值是此BigDecimal值的未缩放值。divide(BigDecimal)BigDecimal对象中的值相除返回BigDecimal对象。该方法可能会遇到无限精度问题会抛出异常使用时需注意。详细见上一篇文章的无限精度的坑BigDecimal remainder(BigDecimal divisor)返回当前BigDecimal对象除以divisor后的余数。 被除数divisor不能是0否则抛出异常BigDecimal[] divideAndRemainder(BigDecimal divisor)返回当前BigDecimal对象除以divisor后的商和余数以数组形式返回。被除数divisor不能是0否则抛出异常 int、BigInteger、long取值范围 类型取值范围int-2,147,483,648 到 2,147,483,647long-9223372036854775808~9223372036854775807 BigInteger 任意大的整数其取值范围在负无穷到正无穷之间原则上是只要你的计算机的内存足够大可以有无限位的, 当数值超过long之后就要用BigInteger进行处理了 2.1、stripTrailingZeros() 去除小数尾部所有的0 BigDecimal stripTrailingZeros() 去除小数尾部所有的0并返回一个BigDecimal类型的数据,不能保证不是科学计数法 0.20—0.2 10.00—10 100—100 public static void main(String[] args) {BigDecimal a new BigDecimal(10.000);BigDecimal b new BigDecimal(100000);BigDecimal c new BigDecimal(10.10);System.out.println(a.stripTrailingZeros().toPlainString());//10System.out.println(b); //100000System.out.println(b.stripTrailingZeros()); //1E5 注意返回的值可能已经是个科学计数法了System.out.println(c.stripTrailingZeros().toPlainString());//10.1 }当stripTrailingZeros()返回科学计数法时可以通过toPlainString()方法不使用科学计数法进行输出。 2.2、int signum() int signum() 返回BigDecimal的正负号 1正数 0零 -1负数 用于判断BigDecimal对象是正数负数还是零 public static void main(String[] args) {BigDecimal a new BigDecimal(10);BigDecimal b new BigDecimal(-5);BigDecimal c new BigDecimal(0);System.out.println(a.signum());//1System.out.println(b.signum());//-1System.out.println(c.signum());//0 }2.3、int scale() int scale() 该方法返回此BigDecimal的小数位数。 对于零或正值小数位数是小数点右边的位数。对于负值数字的未标度值乘以十即标度取反的幂。 注意当BigDecimal的对象为科学计数法时scale的值不一定等于小数位数 public static void main(String[] args) {BigDecimal a new BigDecimal(10.00);BigDecimal b new BigDecimal(-5.1);BigDecimal c new BigDecimal(-174);BigDecimal d new BigDecimal(-1234500);System.out.println(a.scale());//2System.out.println(b.scale());//1System.out.println(c.scale());//0System.out.println(dd.scale());//-12345000System.out.println(d.stripTrailingZeros()d.stripTrailingZeros().scale());//-1.2345E6 -2 注意当BigDecimal的对象为科学计数法时scale的值不一定等于小数位数 }2.4、intValue() int intValue() 返回int数值小数点后面的数值直接省略 注意 int类型的取值范围是-2,147,483,648 到 2,147,483,647所以当超过这个数值时会从负值开始继续转换可以使用intValueExact()方法当超出int取值范围后会抛异常 public static void main(String[] args) {BigDecimal a new BigDecimal(2999999999.99);BigDecimal b new BigDecimal(2147483649);System.out.println(a.intValue());//-1294967297System.out.println(b.intValue());//-2147483647 }2.5、intValueExact() int intValueExact() 返回int数值小数点后面的数值直接省略若BigDecimal对象的值超出int类型取值范围抛出异常 int取值范围是-2,147,483,648 到 2,147,483,647当超过这个范围时抛出异常 以下示例可以看出intValue() 与intValueExact() 的区别 public static void main(String[] args) {BigDecimal a new BigDecimal(2147483648);BigDecimal b new BigDecimal(2147483648);System.out.println(a.intValue());//-2147483648System.out.println(b.intValueExact());//抛异常 }执行结果 -2147483648 Exception in thread main java.lang.ArithmeticException: Overflowat java.math.BigDecimal.intValueExact(BigDecimal.java:3152)at com.ruoyi.common.utils.money.Test1.main(Test1.java:12)2.6、unscaledValue() BigInteger unscaledValue() 此方法返回一个BigInteger其值是此BigDecimal值的未缩放值。 总结一下就是返回没有小数点的金额该值计算(此* 10this.scale())。如10.235–10235 0.32—32 public static void main(String[] args) {BigDecimal a new BigDecimal(10.235);BigDecimal b new BigDecimal(0.32);System.out.println(a.unscaledValue());//10235System.out.println(b.unscaledValue());//32 }2.7、remainder(BigDecimal divisor) BigDecimal remainder(BigDecimal divisor) | 返回当前BigDecimal对象除以divisor后的余数。被除数divisor不能是0否则抛出异常 public static void main(String[] args) {BigDecimal a new BigDecimal(10);System.out.println(a.remainder(new BigDecimal(2)));// 10%2 0a new BigDecimal(10.23);System.out.println(a.remainder(new BigDecimal(2)));//10.23%2 0.23System.out.println(a.remainder(new BigDecimal(0)));//被除数不能是0否则抛出异常 }执行结果如下 2.8、divideAndRemainder(BigDecimal divisor) BigDecimal[] divideAndRemainder(BigDecimal divisor) 返回当前BigDecimal对象除以divisor后的商和余数以数组形式返回。被除数divisor不能是0否则抛出异常 注意返回的数值会有小数点位数的问题 10.00 ➗ 2 5.00 10.00 ➗ 2.000 5 public static void main(String[] args) {BigDecimal a new BigDecimal(10);BigDecimal[] arr a.divideAndRemainder(new BigDecimal(2));System.out.println(Arrays.asList(arr));//[5, 0]a new BigDecimal(10.23);arr a.divideAndRemainder(new BigDecimal(2));System.out.println(Arrays.asList(arr));//[5.00, 0.23]a new BigDecimal(10.23);arr a.divideAndRemainder(new BigDecimal(2.000));System.out.println(Arrays.asList(arr));//[5, 0.230]System.out.println(a.divideAndRemainder(new BigDecimal(0)));//被除数不能是0否则抛出异常 }三、进阶 3.1、获取BigDecimal整数部分、小数部分、整数位数、小数位数 方式一 个人觉得用这种方式获取BigDecimal整数部分、小数部分、整数位数、小数位数比较方便 public static void main(String[] args) {BigDecimal a new BigDecimal(10.23);String money a.toPlainString();String integer String.valueOf(a.toBigInteger());//整数部分String point money.split(\\.).length1?:money.split(\\.)[1]; //小数部分System.out.println(integer);//10System.out.println(point);//23 }
http://www.zqtcl.cn/news/676826/

相关文章:

  • 网站开发需要提供哪些东西镇江网络违法网站
  • 都江堰建设局官方网站wordpress分享此文章
  • 素材网站整站下载赣州网站建设信息
  • 网上做问卷报酬不错的网站是iis 如何新建网站
  • 济南建设监理协会网站雄安网站建设单位
  • 微网站模板怎么用公司网站无法打开
  • 查询网站备案进度做外贸的数据网站
  • 广州建网站哪儿济南兴田德润简介室内设计效果图手绘图
  • 网站页面设计要求做搜狗网站优化
  • 家纺代发网站建设百度怎么做开锁网站
  • 哈尔滨网站建设有哪些做互联网项目怎么推广
  • 网站首页代码怎么做温州设计集团有限公司官网
  • 如何更换网站图片自己做头像的网站漫画
  • 网站设计风格确认书网站标题 没有排名
  • iis内网站设置允许脚本执行免费行情100个软件
  • 网站如何做团购网站域名做链接怎么做
  • 绿色蔬菜网站模板怎么做网站网站的代理
  • 网站seo优化推广专业app开发制作团队
  • 学校网站建设工作网上推广怎么做
  • 二 网站建设的目的及功能定位想找个专业做网站公司
  • 国内网站建设建设合肥城乡建设网站首页
  • 昆明市住房和城乡建设局网站怎么导出wordpress 整个网站
  • 哈尔滨 高端网站建设好用的网站链接
  • 优化网站建设seo关于申请网站建设经费的请示
  • 公交车网站怎么做留言板新公司起名大全
  • asp.net网站开发 vs2017广州seo成功案例
  • asp网站表格代码国家信用信息公示系统陕西
  • 网站建设技术文档网站做二维码
  • 模板建站公司wordpress 换行无效
  • 网站建设付款方式镇江网站设计开发公司电话