精华内容
下载资源
问答
  • bigdecimal转String
    千次阅读
    2020-08-19 15:08:23

    public static void main(String[] args) {
            // 浮点数的打印
            System.out.println(new BigDecimal("10000000000").toString());

            // 普通的数字字符串
            System.out.println(new BigDecimal("100.000").toString());

            // 去除末尾多余的0
            System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());

            // 避免输出科学计数法
            System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());

        }

     

    输出结果

    10000000000
    100.000
    1E+2
    100
    更多相关内容
  • java代码-BigDecimal转String
  • BigDecimal String

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

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

    【前言】

            最近遇到一个需求,是给用户发送带钱的短信,本来自己以为挺简单,很快可以搞定,不过在实现的时候遇到一些小问题,自己辗转查和实验最终解决该问题,在此记录一下。

    【BigDecimal如何转成String】

            一、业务需求

                   1、数据库中有相应的用户金额,需要发短信通知告诉用户;

                   2、短信内容设计采用:固定内容+变量(占位符{0})具体参考《Java 巧用占位符》;

                   3、用户金额(BigDecimal)是其中的变量,需要将金额BigDecimal转换成String类型;

                   4、产品要求金额在短信中的显示样式:

                      (1)数据库:1888.00--->短信中显示:1888

                      (2)数据库:1888.10--->短信中显示:1888.1

                      (3)数据库:1888.11--->短信中显示:1888.11

            二、相关代码及测试

                   1、尝试一:首先想到的直接是BigDecimal.toString方式;

                      (1)代码

        public static void main(String[] args) {
    
            //短信模版
            String mod = "{0} 先生/女士,您好!您的尾号({1})的银行卡,余额是({2})元";
    
            //模拟从数据库中取出金额
            BigDecimal bigDecimalValue = new BigDecimal(1888.10);
    
            //拼接短信变量
            String variable = "张三;567;" + bigDecimalValue.toString();
    
            //组合短信内容:模版+变量
            String context = MessageFormat.format(mod, variable.split(";"));
    
            //测试输出 短信内容
            System.out.println(context);
    
        }

                      (2)测试结果

    张三 先生/女士,您好!您的尾号(567)的银行卡,余额是(1888.09999999999990905052982270717620849609375)元

                      (3)结论:金额转为科学计数法,很显然不符合我们的要求;

                   2、尝试二:针对尝试一问题,想到保留小数位方式

                      (1)代码

        public static void main(String[] args) {
    
            //短信模版
            String mod = "{0} 先生/女士,您好!您的尾号({1})的银行卡,余额是({2})元";
    
            //模拟从数据库中取出金额
            BigDecimal bigDecimalValue = new BigDecimal(1888.10);
    
            //保留两位小数
            String strValue = bigDecimalValue.setScale(2, BigDecimal.ROUND_HALF_DOWN).toString();
    
            //拼接短信变量
            String variable = "张三;567;" + strValue;
    
            //组合短信内容:模版+变量
            String context = MessageFormat.format(mod, variable.split(";"));
    
            //测试输出 短信内容
            System.out.println(context);
    
        }

                      (2)测试结果

    张三 先生/女士,您好!您的尾号(567)的银行卡,余额是(1888.10)元

                      (3)结论:虽然比尝试一显示好很多,但是仍然不符合产品需求(产品需求是1888.10要显示成1888.1

                   3、尝试三:将BigDecimal转换为double再进行取值

                      (1)代码

        public static void main(String[] args) {
    
            //短信模版
            String mod = "{0} 先生/女士,您好!您的尾号({1})的银行卡,余额是({2})元";
    
            //模拟从数据库中取出金额
            BigDecimal bigDecimalValue = new BigDecimal(1888.10);
    
            //保留两位小数
            String strValue =bigDecimalToString(bigDecimalValue);
    
            //拼接短信变量
            String variable = "张三;567;" + strValue;
    
            //组合短信内容:模版+变量
            String context = MessageFormat.format(mod, variable.split(";"));
    
            //测试输出 短信内容
            System.out.println(context);
    
        }
    
        //将BigDecimal取为Double然后转为String方式
        private static String bigDecimalToString(BigDecimal bigDecimalValue){
            NumberFormat cf = NumberFormat.getInstance();
            double taxD = bigDecimalValue.doubleValue();
            String strValue = cf.format(taxD).replace(",", "");
            return strValue;
        }

                      (2)测试结果

    张三 先生/女士,您好!您的尾号(567)的银行卡,余额是(1888.1)元

                      (3)结论:

                               A、测了一些数据符合我们的要求;

                               B、如果大家看这种方式的实现方式不难发现将BigDecimal转为Double时精度会有丢失;当数据位数很多时会有问题;例如:188888888888888888888.10 转换后为 188888888888888900000  

                               C、针对位数过多数据错乱,查看一下我们数据库字段类型为 decimal(20,8) 也金钱是保留小数点后两位,也就是存的最大数值为 999999999999.99 而将最大值用转换程序测试一下是支持的,故满足需求;测试结果如下:

    张三 先生/女士,您好!您的尾号(567)的银行卡,余额是(999999999999.99)元

            

    【总结】

            1、思想上移,行动下移;

            2、方法总比困难多;

            3、逐渐体会到英语重要性(在找计算机专业方案时,百度出来的结果和Google出来的准确度还是有一些)。

    展开全文
  • 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 ...

    获取到的Map<String, String>集合是 BigDecimal类型的值,如果直接转换为String类型则报错:java.math.BigDecimal cannot be cast to java.lang.String

    解决方法:先用Object类型接收,然后再转换成自己想要的类型

    Map<String, String> m = list.get(i);
    Object obj = m.get("OILAMOUNT");
    String s = (String)m.get("OILAMOUNT"); //转String
    float f = Float.valueOf(obj.toString()); //转float
    

    作者:itmyhome

    展开全文
  • java类型转换小细节之BigDecimal转String

    万次阅读 2021-08-17 16:44:01
    public static void main(String[] args) { // 浮点数的打印 System.out.println(new BigDecimal("10000000000").toString()); // 普通的数字字符串 System.out.println(new BigDecimal("100.000").toString());...
    public static void main(String[] args) {
            // 浮点数的打印
            System.out.println(new BigDecimal("10000000000").toString());
            // 普通的数字字符串
            System.out.println(new BigDecimal("100.000").toString());
            // 去除末尾多余的0
            System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());
            // 避免输出科学计数法
            System.out.println(newBigDecimal("100.000").stripTrailingZeros().toPlainString());
    
        }
    
    10000000000
    100.000
    1E+2
    100
    

    使用方法
    setDiscountPrice方法传入BigDecimal类型数据 我获取的是discountPrice是string 类型如下
    tempUserKB.setDiscountPrice(new BigDecimal(discountPrice));

    程序员的眼里,不止有代码和bug,还有诗与远方以及开车接你回家的妹子!!!

    原文的升级

    展开全文
  • BigDecimal转String字符串的代码 Posted on 2016-06-28 11:17 上善其若水,厚德载物 阅读(8896) 评论(0) 编辑 收藏 举报 bigdeciaml.stripTrailingZeros().toPlainString() .stripTrailingZeros()是将BigDecimal转化...
  • BigDecimal a = new BigDecimal(100.00); a.stripTrailingZeros().toPlainString(); // 结果为100
  • Bigdecimal转string取整

    千次阅读 2019-12-13 17:08:38
    需求:去除Bigdecimal小数点后的0 System.out.println( new BigDecimal("100.000").toString()); 程序的输出即为:100.000 如果我们希望去除末尾多余的0,那么我们应该这么写: System.out.println( new ...
  • //BigDecimal 转换成 string数据类型 string c = b.toString();//BigDecimal 转换成 int数据类型 int c = b.intValue();//BigDecimal 转换成 double数据类型 double c=a.doubleValue();b.stripTrail...
  • 科学计数法--->字符串 newBigDecimal(valueFrom.toString()).toPlainString()
  • BigDecimalString 的相互转换

    千次阅读 2020-06-29 14:14:42
    一:string 转BigDecimal public class Test{ public static void main(String[] arg) { String str1=“2.30”; BigDecimal bd=new BigDecimal(str1); System.out.println(bd); } } 直接new 就行了。 二:BigDecimal...
  • BigDecimalString之间的转换

    千次阅读 2020-04-28 09:18:33
    BigDecimal通常称为大小数类,主要运用在一些对数字精度要求很高的项目上,例如银行项目。Java在java.math包中提供的API类...1. BigDecimal转换为String BigDecimal num = new BigDecimal("xxx"); String str ...
  • 例子1,string 转BigDecimal public class Test{ public static void main(String[] arg) { String str1="2.30"; BigDecimal bd=new BigDecimal(str1); System.out.println(bd); } } 直接new 就行了。 ...
  • BigDecimal转String类型

    千次阅读 2014-08-14 11:58:29
    在代码中要成Integer类型的时候 代码如下: ①、 int a = map.get("CONSTRICTION"); //报错:Cannot cast from Object to int   ②、 Integer.parseInt((String)map.get("CONSTRICTION&...
  • BigDecimal转为String类型、int类型

    千次阅读 2020-10-12 19:30:22
    1.BigDecimal类型转化为String类型的数据 // 这里呢,在industryUseRecordEntity这个对象里面, // SumSourceNum这个属性存储的数据就是BigDecimal类型的数据, valueList.add(industryUseRecordEntity....
  • //前提为a、b均不能为null if(a.compareTo(b) == -1){ System.out.println("a小于b"); } if(a.compareTo(b) == 0){ System.out.println("a等于b"); } ...if(a.compareTo(b) == 1){ System.out.println("a大于b");...
  • BigDecimal转String

    千次阅读 2018-12-21 14:50:15
    结果就报了java.math.BigDecimal cannot be cast to java.lang.String异常。 查询发现,问题是出在强转上,只要改成: String total = map.get("total").toString(); 就可以解决。因为BigDecimal不能...
  • java中的BigDecimalString的相互转换 www.cnblogs.com/geekdc/p/56… blog.csdn.net/xuanjiewu/a…
  • public static void main(String[] args) { System.out.println( new BigDecimal(“100.000”).toString()); System.out.println( new BigDecimal(“100.000”).stripTrailingZeros().toString()); System.out....
  • VO类有关数据的属性都是Bigdecimal,如果返回给前端的数位过多,会被自动成科学计数法,为了避免这种情况的发生,返给前端的数据最好是StringBigdecimal有toPlainString方法,能将数值正确成字符串,但当调用...
  • 一:/*由数字字符串构造BigDecimal的方法*设置BigDecimal的小数位数的方法*/注:...//数字字符串String StrBd="1048576.1024";//构造以字符串内容为值的BigDecimal类型的变量bdBigDecimal bd=new BigDecimal(S...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,479
精华内容 34,191
关键字:

bigdecimal转string

友情链接: 3X4jianpan.rar