触发,结果展示为 百分比 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. 临时表,临时表什么时候删除
  2. three.js 背景图片
  3. leetcode算法题--摆动序列★
  4. 洛谷 P1003 铺地毯
  5. SAP中委外采购订单发料
  6. boost::variant2模块实现抛出异常的测试程序
  7. 编写高质量代码改善C#程序的157个建议——建议130:以复数命名枚举类型,以单数命名枚举元素...
  8. 【Scikit-Learn 中文文档】支持向量机 - 监督学习 - 用户指南 | ApacheCN
  9. PHP中各种Hash算法性能比较
  10. Esp8266对接阿里云物联网远程实时温度监控{探讨帖}
  11. mapbox gl本地化部署实践
  12. 判断一个整数是否为素数。本题要求编写程序,判断一个给定的整数是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
  13. 还要入驻美团酒店被抽成吗?微小程小程序给你自己的平台
  14. 专访黄泽武:顺丰科技是如何应用边缘计算的?
  15. AR隐形眼镜来了,一部手机的价格,正式开启人体佩戴测试
  16. PyQt5 | PyQt5环境配置及组件介绍
  17. cmd如何切换到E盘
  18. http,websocket,rpc的之间的关系
  19. 金庸不朽,将在区块链世界中永生
  20. 前端react引入阿里矢量图标

热门文章

  1. ACRush 楼天成 回忆录
  2. Java支付宝二维码支付和退款,微信二维码支付
  3. SQLServer 统计数据量
  4. 网络对抗作业 一------袁昊晨
  5. Labelme标注的json数据转化为coco格式的数据
  6. 谷歌浏览器ajax异常,谷歌浏览器 jquery ajax
  7. leetcode 39. 组合总和
  8. 【Linux】基本系统维护命令
  9. knowledge-based systems 终于返回了意见——小修
  10. 加分项——C语言实现Linux的pwd命令