触发,结果展示为 百分比 125%

import java.math.BigDecimal;
import java.text.NumberFormat;public class Del4 {public static void main(String[] args) {BigDecimal acceptCountB = new BigDecimal(1.25);BigDecimal exceptionGroupCountB = new BigDecimal(1);BigDecimal r = acceptCountB.divide(exceptionGroupCountB, 4, BigDecimal.ROUND_HALF_UP);NumberFormat percent = NumberFormat.getPercentInstance();percent.setMaximumFractionDigits(2);System.out.println(percent.format(r.doubleValue()));//125%}}
/*** BigDecimal 元转分* */@Testpublic void test11(){BigDecimal b=new BigDecimal("100.01");BigDecimal a=b.multiply(new BigDecimal(100));//乘以100(单位:分)System.out.println(b.intValue());System.out.println(b);System.out.println(a.intValue());System.out.println(a);}

打印结果

100
100.01
10001
10001.00

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:

第一种:BigDecimal(double val)
Translates a double into a BigDecimal.

第二种:BigDecimal(String val)
Translates the String repre sentation of a BigDecimal into a BigDecimal.

使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。

public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)
public static double round(double v,int scale)

Java代码  正在上传…重新上传取消http://blog.csdn.net/huiwenjie168/article/details/6998140

  1. import java.math.BigDecimal;
  2. /**
  3. * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
  4. * 确的浮点数运算,包括加减乘除和四舍五入。
  5. */
  6. public class Arith{ //默认除法运算精度
  7. private static final int DEF_DIV_SCALE = 10; //这个类不能实例化
  8. private Arith(){
  9. }
  10. /**
  11. * 提供精确的加法运算。
  12. * @param v1 被加数
  13. * @param v2 加数
  14. * @return 两个参数的和
  15. */
  16. public static double add(double v1,double v2){
  17. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  18. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  19. return b1.add(b2).doubleValue();
  20. }
  21. /**
  22. * 提供精确的减法运算。
  23. * @param v1 被减数
  24. * @param v2 减数
  25. * @return 两个参数的差
  26. */
  27. public static double sub(double v1,double v2){
  28. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  29. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  30. return b1.subtract(b2).doubleValue();
  31. }
  32. /**
  33. * 提供精确的乘法运算。
  34. * @param v1 被乘数
  35. * @param v2 乘数
  36. * @return 两个参数的积
  37. */
  38. public static double mul(double v1,double v2){
  39. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  40. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  41. return b1.multiply(b2).doubleValue();
  42. }
  43. /**
  44. * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
  45. * 小数点以后10位,以后的数字四舍五入。
  46. * @param v1 被除数
  47. * @param v2 除数
  48. * @return 两个参数的商
  49. */
  50. public static double div(double v1,double v2){
  51. return div(v1,v2,DEF_DIV_SCALE);
  52. }
  53. /**
  54. * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
  55. * 定精度,以后的数字四舍五入。
  56. * @param v1 被除数
  57. * @param v2 除数
  58. * @param scale 表示表示需要精确到小数点以后几位。
  59. * @return 两个参数的商
  60. */
  61. public static double div(double v1,double v2,int scale){
  62. if(scale<0){
  63. throw new IllegalArgumentException(
  64. "The scale must be a positive integer or zero");
  65. }
  66. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  67. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  68. return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  69. }
  70. /**
  71. * 提供精确的小数位四舍五入处理。
  72. * @param v 需要四舍五入的数字
  73. * @param scale 小数点后保留几位
  74. * @return 四舍五入后的结果
  75. */
  76. public static double round(double v,int scale){
  77. if(scale<0){
  78. throw new IllegalArgumentException("The scale must be a positive integer or zero");
  79. }
  80. BigDecimal b = new BigDecimal(Double.toString(v));
  81. BigDecimal one = new BigDecimal("1");
  82. return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  83. }
  84. };

BigDecimal 元转分-加减乘除、百分比相关推荐

  1. java 分转元_java元转分分转元

    一个简单的元转分分转元工具类,是使用了BigDecimal来对金额高精度计算.BigDecimal的介绍这里就不展开了.直接上代码: AmountUtil.javapackage com.weizhi ...

  2. 带有两位小数的元转分

    只对有两位小数的元转分使用,2位以上不适用,会直接把第三位小数去掉,丢精度 /*** 元 转 分 -- 保证精度准确* @param price* @return*/public static int ...

  3. 微信支付元转分的正确姿势

    1.背景 近期做了一个涉及微信支付的项目,由于工期比较紧张,所以引用了一款GitHub上的第三方SDK,开发效率还是蛮高的.但是在使用的过程中,确实也遇到一些bug.此处分享一下元转分的正确实现方式. ...

  4. Android - 分转元、元转分 金额工具类

    说明: Android涉及到的金额分转元.元转分,写成工具类做记录使用. 需求: 1.元转分: 可传入字符串或者long型(隐式转换为long型也可)整数. 若传入为字符串,则通过替换小数点的方式转换 ...

  5. php 浮点型float 强转int php金额计算 php元转分

    float 转int导致的误差太大,出现下面的问题. 浮点数的精度 浮点数的精度有限.尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16 ...

  6. Java中BigDecimal类型的加减乘除及大小比对

    Java中BigDecimal类型的加减乘除及大小比对 前言 BigDecimal解释 创建BigDecimal类型 加减乘除计算 结果分析 结论 除法的补充 两个BigDecimal的比对 前言 在 ...

  7. golang元转分、分转元

    参考 https://godoc.org/github.com/shopspring/decimal#example-NewFromFloat 代码 package digitalConverimpo ...

  8. java BigDecimal实现精确加减乘除运算

    原文:http://blog.csdn.net/shadow_zed/article/details/73522157 import java.math.BigDecimal;/*** 由于Java的 ...

  9. java 金额转换 元转分 分转元

    import java.math.BigDecimal;/*** 作 者:lianxin*/ public class MoneyUtils {/*** 商户金额单位对应支付定单金额单位(元对应分)比 ...

最新文章

  1. python数据可视化库 动态的_Python数据可视化:Pandas库,只要一行代码就能实现...
  2. iptables 过滤条件(Matches)
  3. 【五线谱】符干朝向与连音线 ( 符干朝向 | 第三线以下符干朝上 | 第三线以上符干朝下 | 连音线 )
  4. 北大OJ百练——3179:最长单词(C语言)
  5. k中心点聚类算法伪代码_聚类算法之——K-Means、Canopy、Mini Batch K-Means
  6. 【leetcode】
  7. D. Relatively Prime Graph
  8. python读excel字体颜色_python操作excel之设置字体颜色及格式
  9. JMM内存模型详解(一)
  10. 有软件测试台式电脑电源供电不足吗,台式机电源供电不足的原因
  11. 英特尔傲腾技术:部署更简单,内存提升游戏性能
  12. 关于RH850系统时钟初始化的分析解读
  13. 变量的定义、类型、注释、拼接字符串、选择循环结构、读取文件
  14. python换源之pip.conf
  15. Real-Time Rendering读书笔记——01
  16. Maximal GCD
  17. 系统分析与设计期末课程总结
  18. Springboot @Value读取map或list的properties配置
  19. java 使用*打印图形(菱形、平行四边形、三角形)
  20. Linux中命令行查找文件

热门文章

  1. 工控前辈经验之谈 | 编写PLC程序我从做Excel表开始
  2. 初识对象,对象的创建以及方法的定义规则
  3. jpa查询表的部分字段
  4. 利用oss实现下载功能
  5. python类的继承,白月黑羽笔记01
  6. easypoi excel导出
  7. 取消计算机粘贴,电脑复制粘贴文件或图片后怎么设置右击取消粘贴?
  8. Cisco ASA防火墙
  9. 【19调剂】北京航空航天大学苏州创新研究院培养基地非全日制硕士研究生招生说明(校内)...
  10. 网站设计|10大创意教你设计网站主页