如何使用 BigDecimal 显示始终保留 2 位小数的数字?

2024-01-06

我在用大十进制以获得一些价格值。需求是这样的,无论我们从数据库中获取什么值,显示的值都应该有2个小数点。

Eg:

获取的值为 1 - 应显示为 1.00
获取的值为 1.7823 - 应显示为 1.78

我在用setScale(2, BigDecimal.ROUND_HALF_UP)但仍然有些地方,如果数据库中的数据是整数,则显示的数据相同!

我的意思是,如果数据库中的值为 0,则仅显示为 0。我希望它显示为 0.00

Thanks


BigDecimal 是不可变的,对其进行的任何操作(包括 setScale(2, BigDecimal.ROUND_HALF_UP))都会生成一个新的 BigDecimal。正确的代码应该是

BigDecimal bd = new BigDecimal(1);
bd.setScale(2, BigDecimal.ROUND_HALF_UP); // this does change bd
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd);

output

1.00

注意 - 从 Java 9 开始BigDecimal.ROUND_HALF_UP已被弃用,您现在应该使用RoundingMode.ROUND_HALF_UP.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 BigDecimal 显示始终保留 2 位小数的数字? 的相关文章

随机推荐

  • 对于 Android,FireBase 卡在“运行您的应用程序以验证安装”上

    我是android开发的新手 很长一段时间以来 我陷入了一个错误 即运行您的应用程序以验证安装 检查应用程序是否已与我们的服务器通信 您可能需要卸载并重新安装您的应用程序 build gradle Module app dependenci
  • .NET Core 中有没有办法阻止 Postman 发出的 HTTP 请求?

    我只是想知道是否有办法阻止POSTMAN发出的HTTP请求 就像浏览器在 CORS 的帮助下只允许特定来源访问资源 提前致谢 No 在 CORS 中 浏览器的工作是阻止请求 或应答 您的服务器不知道请求的 真相 如果某些高级用户在浏览器设置
  • 将 eclipse 3.7 升级到 4.2 (Juno) 的最简单方法

    那么 由于 Eclipse juno 基于 4 2 而不是 3 7 除了安装一个单独的 juno 副本并重新安装 3 7 中的所有现有插件之外 升级到它的最简单方法是什么 eclipse org 上似乎没有提到直接的升级路径 Eclipse
  • 令人困惑的 typedef 涉及类作用域

    我正在阅读 C 项目的代码 它包含以下形式的一些代码 namespace ns class A class B struct C typedef ns A ns B type 有人可以解释一下它的含义吗typedef line type似乎
  • Angular 2 - 无法读取未定义的属性“AssetUrl”

    我是新来的angular2 and material design 我正在尝试将它们一起使用 I cloned this Material2 应用程序 https github com jelbourn material2 app 这是基于
  • 计算和验证第一个字节的时间 (TTFB)

    我得到了以下公式来测量第一个字节的时间 TTFB TTFB 到 DOM 就绪和页面加载 TTFB window performance timing responseStart window performance timing navig
  • Redux 减速器初始化相同的状态键

    我正在搞乱github 上的 最简单的 Redux 示例 https github com jackielii simplest redux example我添加了第二个减少 state count 的减速器 如果我在 switch cas
  • 如何用C#实现交互式决策树

    我需要允许用户通过在屏幕上显示的两个简单选项之间进行选择来选择自己的路径 以便进行下一组选择 直到他们到达其中一个结局 即应该实现这样的事情 我尝试过以下代码 但每次只评估左侧 我想知道如何才能达到如上图所示的结果 覆盖所有分支 例如 如果
  • AbstractNum 和 NumberingInstance 的用途

    1 我在想他的目的AbstractNum是重用编号格式并且NumberingInstance是创建新列表 从 1 重新启动 但我注意到 如果在 1 处重新启动列表的第二个实例 openxml 文档将具有该列表的精确副本AbstractNum
  • Resharper 总是建议我制作 const string 而不是 string

    哪一个好 string sQuery SELECT FROM table or const string sQuery SELECT FROM table 为什么 resharper 总是建议我这样做 后者更好 这意味着 这不是实例变量 因
  • AIX 上的 proftpd 静态编译

    我想在 AIX 上编译 proftpd 使其可以部署在其他服务器上 而不必在每台服务器上重新安装所有 gnu lib 库 我已经设法动态编译它 但我无法使用该选项来编译它 LDFLAG Wl static 就像 Proftpd 官方文档中的
  • 如何在 Debian Wheezy armel 上安装 g++ 4.9?

    我的 Debian 7 armel 嵌入式系统目前有 g 4 6 我想升级到 g 4 9 以使用新的 C 11 功能 我怎么做 我当前的sources list内容是 deb http security debian org wheezy
  • Spreadsheet_excel_reader 日期格式[重复]

    这个问题在这里已经有答案了 我正在使用电子表格 excel reader 读取 php 上的 xls 文件并将数据插入到 oracle 数据库中 我正在使用下面的代码 filename test xls reader new Spreads
  • EF 3.x 中最简单的分组依据失败,并显示“不支持客户端分组依据”

    目前正在使用 EF Core 版本 3 1 1 进行测试 当我搜索时 我找到了对此问题的引用 但我没有看到任何关于为什么会发生这种情况的明确答案 以及它是否是一个将被修复的错误或是否是预期的行为 这就像看起来一样简单 BatchReques
  • 通过 WordPress 管理员不断收到此控制台错误

    未捕获 承诺中 message 侦听器通过 r 指示异步响应 在收到响应之前关闭了通道 消息 侦听器通过返回 true 指示异步响应 但消息通道在响应之前关闭收到 原型 对象 Promise then 异步 匿名 geolocation s
  • 从代码隐藏访问 asp:content

    好吧 我是一名经验丰富的 Web 开发人员 但有时 ASP Net 会欺骗我 我在 asp net 中有一个母版页 然后我有一个基于该母版页 home aspx 的页面 现在在 home aspx cs 中 我想访问 asp content
  • 停止自动隐藏托盘通知图标

    每当我的 Windows 窗体应用程序第一次运行时 托盘图标保持可见状态大约不到一分钟 然后自动隐藏 我该怎么做才能让它粘住而不是自动隐藏 我尝试搜索 但找不到任何有用的信息 看来这是 Windows 7 及更高版本的默认行为 我想知道是否
  • 如何在 Amazon EC2 Ubuntu 服务器上设置 GUI

    我正在使用亚马逊 Ubuntu EC2 实例 它只有一个命令行界面 我想为该服务器设置 UI 以使用远程桌面工具进行访问 有没有办法将GUI应用到EC2实例 这是可以做到的 以下是设置 GUI 的步骤 创建新用户 使用密码登录 sudo u
  • 使用Java注解的ViewResolver

    是否有可能在Spring http en wikipedia org wiki Spring Framework3 1 1 使用Java注释配置视图解析器 我已经使用 Java 注释完成了所有配置 但我陷入困境视图解析器 Code pack
  • 如何使用 BigDecimal 显示始终保留 2 位小数的数字?

    我在用大十进制以获得一些价格值 需求是这样的 无论我们从数据库中获取什么值 显示的值都应该有2个小数点 Eg 获取的值为 1 应显示为 1 00获取的值为 1 7823 应显示为 1 78 我在用setScale 2 BigDecimal