当我使用Java-BigDecimal时遇到一个问题,一个BigDecimal对象乘以100时,哪种方法会更好?


这在银行类的项目非常常见,鄙人了解有以下三种方法:

1、movePointRight,一个 BigDecimal,它等效于将该值的小数点向右移动 n 位。

2、multiply,this * multiplicand,返回相乘的值。

3、返回其数值等于 (this * 10n) 的 BigDecimal。


示例代码:

        BigDecimal b1 = new BigDecimal(0);//movePointRightlong start = System.currentTimeMillis();for(int i = 0; i <10000000; i ++){BigDecimal d = new BigDecimal(99); b1 = d.movePointRight(2);} long end = System.currentTimeMillis();System.out.println("movePointRight:" + (end -start) );//multiplystart = System.currentTimeMillis();for(int i = 0; i <10000000; i ++){BigDecimal d = new BigDecimal(99); b1 = d.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);} end = System.currentTimeMillis();System.out.println("multiply:" + (end -start) );//scaleByPowerOfTenstart = System.currentTimeMillis();for(int i = 0; i <10000000; i ++){BigDecimal d = new BigDecimal(99); b1 = d.scaleByPowerOfTen(2);} end = System.currentTimeMillis();System.out.println("scaleByPowerOfTen:" + (end -start) );

movePointRight:278
multiply:250
scaleByPowerOfTen:44

可能方法3效率更高。

BigDecimal乘以100的几种方法相关推荐

  1. BigDecimal乘以100的几种方法 及性能测试

    最近用到decimal计算要乘100 //修改主观题得分率为:主观题得分/总分 修改客观题得分率为:客观题得分/总分 if (Objects.nonNull(exam.getTotalScore()) ...

  2. 一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳上3级 请问跳100级有多少种方法?

    一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳上3级 请问跳100级有多少种方法? 动态规划?错了请骂我 public void solve(){String dp[] = new Strin ...

  3. 1 2 5组合100,有多少种方法

    问题描述:用随意多个1 2 5三个数字的组合,使其值为100,有多少种组合方法? 基础解法:穷举法,1穷举100次,2穷举50次,5穷举20次,这种方法总共穷举的次数为100*50*20=100 00 ...

  4. win10硬盘100% 处理3种方法

    方法1.修改注册表: 具体方法: 1.按下WIN+R调出运行,然后输入 regedit 回车; 2.在注册表编辑器中定位到:HKEY_LOCAL_MACHINESYSTEMCurrentControl ...

  5. 通过指针访问二维数组的三种方法

    下面总结了一下通过指针访问二维数组的三种方法,里边涉及指针.指针数组.数组指针.指向指针的指针以及二维数组的应用,愿对于大家理解和使用指针有所参考和帮助. 程序如下: #include <std ...

  6. html页脚位置调整,将页脚始终控制在页面最下方的几种方法

    html和body的高度并不一定相同,在内容少的时候,body的高度要小于html,当然这只会出现在body中的内容所占的空间高度小于浏览器的视口高度的时候,此时html的高度大于body的高度.网页 ...

  7. python生成100个随机数_Python_0——100闭区间产生3个随机数,两种方法排序

    ''' 题目:0--100闭区间产生3个随机数,两种方法排序 法1:暴力遍历 法2:max(a,b,c)min(a,b,c) 注意:random,radint(0--100)产生随机数 '''impo ...

  8. 队列实现栈的3种方法,全都击败了100%的用户!

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 本文已收录至 Github<小白学算法>系列:https://gith ...

  9. php循环求1到100偶数,用while循环计算打印2到100的偶数和的几种方法

    用while循环计算打印2到100的偶数和(三种方法) 1. 循环-while 语法:while(条件){ //循环体-循环操作//更新循环条件++/--: } 2.continue 作用:终止本次循 ...

最新文章

  1. form表单提交踩坑记
  2. 零基础入门学python 第二版-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...
  3. 统计寄存器AX中1 的个数
  4. leetCode第五题-求字符串最长回文字符串
  5. 【错误记录】Error creating bean with name: Unsatisfied dependency expressed through field
  6. HBase读写的几种方式(三)flink篇
  7. 小爱同学app安卓版_小爱课程表3.0全新升级 课表倒入更简单所有手机能用
  8. 57、剑指offer--二叉树的下一结点
  9. python培训班靠谱吗-Python培训班多少钱
  10. 数学科普书籍介绍(一)
  11. 双卡双待的iPhone终于要来了?中国特供了解一下!
  12. 华硕a豆安装ubuntu14.04系统开启wifi
  13. HDU 4427 Math Magic (2012长春-dp )
  14. 可更新鸿蒙的手机,华为EMUI 11首批10款手机适配:可优先升级鸿蒙OS 2.0
  15. 《高性能MySQL》阅读-高性能索引策略
  16. “第一股”争夺战:每日优鲜、叮咚买菜及美菜网谁能杀出重围?
  17. Web Service 自动生成代码报错
  18. 常熟理工学院计算机专业排名2015,2019年常熟理工学院优势专业排名及分数线
  19. -- 40、查询选修“张三“老师所授课程的学生中,成绩最高的学生信息及其成绩
  20. 在线查询IP及IP信息

热门文章

  1. 8750H带的动MATLAB2019吗,「多图」九代i7-9750H笔记本标压处理器与前代8750H性能对比...
  2. 【人脸识别实战一】系统架构设计
  3. 学生管理系统---代码实现
  4. 浅谈NFT抵押借贷的三种模式:点对点、资金池和中心化模式
  5. 19类商标买卖需要注意啥呢
  6. 计算机更新80072f76,更新win10系统出现错误代码0x80072f76如何解决
  7. M301H_JL九联-Hi3798MV300-当贝纯净桌面-卡刷固件包
  8. 西瓜视频破解js爬虫
  9. leetcode 题解 (500-1000题,持续更新,part 2)
  10. 2023年制造业产品经理NPDP认证报名入口及指南