iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >将BigDecimal转成字符串出现的坑怎么解决
  • 174
分享到

将BigDecimal转成字符串出现的坑怎么解决

2023-07-02 11:07:12 174人浏览 安东尼
摘要

这篇文章主要讲解了“将BigDecimal转成字符串出现的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“将BigDecimal转成字符串出现的坑怎么解决”吧!BigDecimal转

这篇文章主要讲解了“将BigDecimal转成字符串出现的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“将BigDecimal转成字符串出现的坑怎么解决”吧!

    BigDecimal转字符串为科学计数法踩坑

    场景

    开发工程中,在金额方面都会定义bigdecimal类型,当然有时候也需要将金额转成字符串。我们可能会很自然的写成 金额.toString()方法如:

    costBudgetEntity.getInitTotalAmount().toString()//获取初始预算金额的字符串

    当然当金额过小时,转成字符串,是没有任何问题的,但当金额数值较大时,转成的字符串时科学计数法格式,这往往不是我们想要的格式。

    将BigDecimal转成字符串出现的坑怎么解决

    因此

    costBudgetEntity.getInitTotalAmount().toString()//金额为12000000输出的结果为1.2E+7这种的字符串

    然后根据这种字符串,无法做一些想要的业务处理

    解决

    查看BigDecimal的api后,得知有个toPlainString()方法, 此方法的返回类型为String ,它返回此BigDecimal对象的字符串表示形式,不需要任何指数。

    public String toPlainString() {    if(scale==0) {        if(intCompact!=INFLATED) {            return Long.toString(intCompact);        } else {            return intVal.toString();        }    }    if(this.scale<0) { // No decimal point        if(signum()==0) {            return "0";        }        int tailingZeros = checkScaleNonZero((-(long)scale));        StringBuilder buf;        if(intCompact!=INFLATED) {            buf = new StringBuilder(20+tailingZeros);            buf.append(intCompact);        } else {            String str = intVal.toString();            buf = new StringBuilder(str.length()+tailingZeros);            buf.append(str);        }        for (int i = 0; i < tailingZeros; i++)            buf.append('0');        return buf.toString();    }    String str ;    if(intCompact!=INFLATED) {        str = Long.toString(Math.abs(intCompact));    } else {        str = intVal.abs().toString();    }    return getValueString(signum(), str, scale);}

    此时,我们在debug查看:

    将BigDecimal转成字符串出现的坑怎么解决

    costBudgetEntity.getInitTotalAmount().toPlainString() //金额为12000000输出的结果为12000000字符串

    案例演示

    将BigDecimal转成字符串出现的坑怎么解决

    BigDecimal变科学计数法

    阿里OTS存储BigDecimal

    当BigDecimal数据大于9,999,999时

    后就变成科学计数法了。

    如10,000,000 就变为1.0E7

    接收端应该注意

    也需要用BigDecimal,要是使用Integer接收,就可能出现异常

    感谢各位的阅读,以上就是“将BigDecimal转成字符串出现的坑怎么解决”的内容了,经过本文的学习后,相信大家对将BigDecimal转成字符串出现的坑怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    --结束END--

    本文标题: 将BigDecimal转成字符串出现的坑怎么解决

    本文链接: https://www.lsjlt.com/news/341405.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 将BigDecimal转成字符串出现的坑怎么解决
      这篇文章主要讲解了“将BigDecimal转成字符串出现的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“将BigDecimal转成字符串出现的坑怎么解决”吧!BigDecimal转...
      99+
      2023-07-02
    • 将BigDecimal转成字符串为科学计数法的踩坑记录
      目录BigDecimal转字符串为科学计数法踩坑场景解决案例演示BigDecimal变科学计数法BigDecimal转字符串为科学计数法踩坑 场景 在开发工程中,在金额方面都会定义b...
      99+
      2024-04-02
    • python怎么将数字转换成字符串
      可以使用str()函数将数字转换为字符串。例如:pythonnumber = 123string = str(number)prin...
      99+
      2023-10-20
      python
    • 解决golang时间字符串转time.Time的坑
      字符串转时间一定要通过 time.ParseInLocation 不能直接用Parse todayZero, _ := time.ParseInLocation("2006-01...
      99+
      2024-04-02
    • php中怎么将数字转换成字符串
      PHP 是一门功能强大的服务器脚本语言,它支持将数字转换成字符串的功能。这项功能在某些情况下会非常有用,比如在处理表单输入、数据存储以及输出等方面。在本文中,我们将介绍 PHP 中如何将数字转换成字符串。一、使用 (string) 操作符P...
      99+
      2023-05-14
    • java怎么将日期转换成字符串
      在Java中,可以使用`SimpleDateFormat`类将日期转换为字符串。以下是一个示例代码,演示了如何将当前日期转换为字符串...
      99+
      2023-08-17
      java
    • python怎么将字符串转换成列表
      要将一个字符串转换成一个列表,可以使用字符串的split()函数来分割字符串,并将每个分割后的部分作为列表的元素。这是一个示例代码:...
      99+
      2023-09-26
      python
    • php怎么将整型转成string(字符串)
      PHP中整型变量和字符串变量的转换非常简单,可以使用强制类型转换或者一些内置的函数。本文将介绍PHP中整型变量转换为字符串变量的方法。一、强制类型转换PHP中可以使用强制类型转换将整型变量转换为字符串变量,使用方法如下:$x = 123; ...
      99+
      2023-05-14
      php
    • php怎么将字符串转换成小数
      PHP 是一门功能强大的编程语言,广泛应用于 Web 开发领域。其中一个非常常见的情况是需要将字符串转换为小数。这在进行数据处理的时候非常有用。在本文中,我们将介绍如何在 PHP 中将字符串转换为小数。首先,我们需要注意一些基础知识。在 P...
      99+
      2023-05-14
      浮点数 字符串 php
    • Sql中怎么将datetime转换成字符串
      Sql中怎么将datetime转换成字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、回顾一下CONVERT()的语法格式:CONV...
      99+
      2024-04-02
    • jquery怎么将数组转换成字符串
      使用jquery将数组转换成字符串的方法:1.新建html项目,引入jquery;2.定义数组并赋值;3.添加button按钮,绑定onclick点击事件;4.获取数组对象,使用join()方法转换;具体步骤如下:首先,新建一个html项目...
      99+
      2024-04-02
    • java怎么将数组转换成字符串
      可以使用Arrays类的toString()方法将数组转换成字符串。 int[] arr = {1, 2, 3, 4, 5}; St...
      99+
      2024-04-02
    • 怎么在python中将字符串转换成数字
      这篇文章给大家介绍怎么在python中将字符串转换成数字,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Pytho...
      99+
      2023-06-14
    • 使用Java怎么将小写字符串转换成大写字符串
      使用Java怎么将小写字符串转换成大写字符串?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. An...
      99+
      2023-06-14
    • php怎么将字符串转换成二进制
      本文小编为大家详细介绍“php怎么将字符串转换成二进制”,内容详细,步骤清晰,细节处理妥当,希望这篇“php怎么将字符串转换成二进制”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php将字符串转换成二进制的方法:...
      99+
      2023-06-30
    • java怎么将json字符串转换成数组
      可以使用JSON库中的`JSONArray`类来将JSON字符串转换成数组。下面是一个示例代码,演示了如何将JSON字符串转换成数组...
      99+
      2023-09-22
      java json
    • vb中怎么将字符串转换成数值
      在VB中,可以使用`CInt()`函数将字符串转换为整数,使用`CDbl()`函数将字符串转换为双精度浮点数,使用`CDec()`函...
      99+
      2023-10-11
      vb
    • C#中怎么将字节数组转换成字符串
      C#中怎么将字节数组转换成字符串,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#字节数组转换成字符串如果还想从 System.String 类中找到方法进行字符串和字节数组之...
      99+
      2023-06-17
    • java怎么将字符串反转
      要将一个字符串反转,可以使用Java中的StringBuilder类的reverse()方法来实现。下面是一个示例代码: ...
      99+
      2024-02-29
      java
    • pandas怎么将表中的字符串转成数值型
      今天小编给大家分享一下pandas怎么将表中的字符串转成数值型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。pandas将表...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作