精华内容
下载资源
问答
  • BigDecimal 元转分-加减乘除

    千次阅读 2017-02-21 17:07:25
    * BigDecimal 元转分 * */ @Test public void test11(){ BigDecimal b=new BigDecimal("100.01"); BigDecimal a=b.multiply(new BigDecimal(100));//乘以100(单位:) System.out.println(b.int...
    /**
    	 * BigDecimal 元转分
    	 * 
    	 */
    	@Test
    	public 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代码 复制代码 收藏代码

    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 String

    千次阅读 2017-08-16 15:40:01
    BigDecimal amount = new ...//单位 amount = amount.multiply(new BigDecimal(100));// 单位 amount = amount.setScale(0, RoundingMode.DOWN);//取整 String payAmt = String.valueOf(amount);
     BigDecimal amount = new Bigdecimal("12.3456");//单位元
    amount = amount.multiply(new BigDecimal(100));// 单位分
    amount = amount.setScale(0, RoundingMode.DOWN);//取整
    String payAmt = String.valueOf(amount); 
    展开全文
  • BigDecimal 分转元

    千次阅读 2017-09-05 17:49:03
    BigDecimal feeNo = new BigDecimal(fee);//string 转 BigDecimal 分转元 feeNo = feeNo.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);//分转元
    BigDecimal feeNo = new BigDecimal(fee);//string 转 BigDecimal 分转元
    
    feeNo = feeNo.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);//分转元
    展开全文
  • BigDecimal bigDecimal = new BigDecimal(data.toString()); System.out.println(bigDecimal.multiply(new BigDecimal("100"))); System.out.println(bigDecimal.multiply(new BigDecimal("100"))....

    一 实现代码

    Double data = 11.4;
    
    BigDecimal bigDecimal = new BigDecimal(data.toString());
    
    System.out.println(bigDecimal.multiply(new BigDecimal("100")));
    
    System.out.println(bigDecimal.multiply(new BigDecimal("100")).stripTrailingZeros().toPlainString());

    二 实现结果

       

     

    展开全文
  • String与BigDecimal

    千次阅读 2019-05-29 15:38:48
    String与BigDecimal String BigDecimal public static void main(String[] args) { String s = "15.25"; //方式一 BigDecimal bigDecimal = new BigDecimal(s); //方式二 BigDecimal bigDecimal1 =...
  • BigDecimal String

    万次阅读 2019-07-28 23:55:05
    【前言】 最近遇到一个需求,是给用户发送带钱的短信,本来自己以为挺简单,很快可以搞定,不过在实现的时候遇到一些小问题,自己辗转查和实验最终解决该问题...【BigDecimal如何成String】 一、业务需求 ...
  • BigDecimal的转换和使用

    2020-05-18 14:57:58
    BigDecimal String、int、Double Stringz转BigDecimal int 转BigDecimal integer装换为BigDecimal double转BigDecimal 保留小数位数 工具类 Double.valueOf(String) 和Float.valueOf(String)会丢失...
  • 单位的转换为乘以100 public static Object yuan2penny(BigDecimal yuan, Boolean toInt){ ... //乘以100,并四舍五入,并取整 return yuan.multiply(new BigDecimal(100)).setScale(0, BigDecimal.
  • BigDecimal转换

    2020-04-15 16:42:50
    代码检测爆出代码质量:使用浮点数进行精确计算 简单说就是不能用doule,不精确,要用BigDecimal ...BigDecimal num1=new BigDecimal("0.12"); 输出结果 add():相当于加 a.add(b)相当于a+b BigDecim...
  • BigDecimal类型转换

    2019-02-27 15:24:00
    djjfbr.setMoney(new BigDecimal(djjfbillrecord.getMoney())); 转载于:https://www.cnblogs.com/yanchaohui/p/10443973.html
  • BigDecimal转String

    2019-09-04 17:47:09
    集合是 BigDecimal类型的值,如果直接转换为String类型则报错:java.math.BigDecimal cannot be cast to java.lang.String 解决方法:先用Object类型接收,然后再转换成自己想要的类型 Map<String, String> m ...
  • integer和BigDecimal的转换和运算

    万次阅读 2018-09-27 20:51:54
    2.integer和BigDecimal的转换也有很多文章,但是还得细看,因为紧迫,没有耐心(我真失败)!! 3.解决了的转换问题,运算啊,精度出现问题 解决代码: public class hello { public static void main(String[] args)...
  • public static void main(String[] args) {  double d = 1.1;... BigDecimal bd1 = new BigDecimal(d); //(1)  BigDecimal bd2 = BigDecimal.valueOf(d);//(2)  BigDecimal bd3 = new Bi
  • BigDecimal向Double转换

    2017-06-22 16:44:45
    BigDecimal向Double转换
  • bigdecimal转换

    2016-08-11 15:28:17
    model.setTradeAmount(BigDecimal.valueOf((Long.parseLong(queryTradeDto.getTradeAmount()))));
  • String 和 BigDecimal

    2020-06-29 11:08:40
    1. String BigDecimal 由数字字符串构造 BigDecimal 的方法 import java.math.BigDecimal; String str = "1048576.1024"; // 构造以字符串内容为值的BigDecimal类型的变量bd BigDecimal bd = new BigDecimal...
  • Double BigDecimal 转换

    千次阅读 2019-02-20 16:59:12
    BigDecimal 转换 Double(金额使用bigdecimal类型):摘自这里 double s=bigdecimal.doubleValue(); String 转换 BigDecimal:原作者传送门 BigDecimal bigDecimal=new BigDecimal(String); String string = ...
  • BigDecimal 转换类型

    2019-09-24 12:30:29
    使用BigDecimal类来进行计算的时候,主要分为以下步骤: 1、用float或者double变量构建BigDecimal对象。 2、通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算。 3、把BigDecimal对象转换成float,...
  • String转BigDecimal转Double

    2020-09-01 22:27:42
    public static void main(String[] args) { String s = "123.94752719"; //String转BigDecimal BigDecimal big = new BigDecimal(s);... //BigDecimal转Double保留小数(几个0就是几位小数) Strin
  • bigDecimal转int

    2020-08-28 09:55:39
    // bigDecimal int 这些令人窒息的操作 BigDecimal a = BigDecimal.valueOf(45.45); int v1 = (int) a.multiply(BigDecimal.valueOf(100)).doubleValue(); System.out.println("v1 = " + v1); int i...
  • public static void main(String[] args) { String s = "0.44335000000005"; DecimalFormat decimalFormat = new ... BigDecimal bigDecimal = new BigDecimal(s); System.out.println(decimalFormat.format(bigDe
  • BigDecimal金额的转换

    千次阅读 2019-04-18 16:07:37
    支付金额一般使用BigDecimal类,涉及元转,分转元的问题 代码如下: import java.math.BigDecimal; import com.taobao.util.Money; /** * 金额转换工具类 * * @author wangxian * @since 2016-01-02 */ ...
  • 分转元并去掉小数点后面无用值 public static String convertFen2Yuan(String fen) { BigDecimal fenAmt = new BigDecimal(fen); BigDecimal yuanAmt = fenAmt.divide(new BigDecimal(100)).setScale(2, Rounding...
  • string 与BigDecimal

    2017-02-13 17:16:00
    小编知道在java中数据类型非常 的严格了,我们如果一个地方不小心就会导致应用出问题了,今天 小编就在string 转BigDecimal上碰到了一些问题,下面整理了几个例子大家一起来看看。 例子1,string 转BigDecimal ...
  • BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所...
  • bigdecimal转String

    2020-08-19 15:08:23
    System.out.println(new BigDecimal("10000000000").toString()); // 普通的数字字符串 System.out.println(new BigDecimal("100.000").toString()); // 去除末尾多余的0 System.out....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,870
精华内容 15,148
关键字:

bigdecimal元转分