如何使用 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 位小数的数字? 的相关文章

  • 在 Windows 7 中,不从命令行强制终止 JVM

    我在 JVM 中运行了 Cobertura 仪器化 jar 当我在运行应用程序的 Windows 控制台中按 Ctrl C 时 JVM 结束并Cobertura 结果已成功刷新到 cobertura ser 文件 但我需要使用命令 工具 不
  • Maven 配置文件相当于 Gradle

    我试图在我的 spring boot 项目构建中实现一个简单的场景 包括 排除依赖项以及根据环境打包 war 或 jar 例如 对于环境dev包括开发工具和包 jar 用于prod包战等 我知道它不再是基于 XML 的配置 我基本上可以在
  • 将对象列表传递给 Freemarker 然后循环

    我已经熟悉了 FreeMarker 一个 Java 模板引擎 我已经能够通过哈希映射将对象传递给模板引擎了 这样就可以了 但是 一旦我尝试将任何类型的多个对象集传递给 FreeMarker 它就会给我一个 freemarker templa
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • UiBinder 中的 gwt 按钮

    我需要创建一个按钮 所以它是一个带有图像的按钮 gwt with UiBinder 但我不确定如何进行 这是我的ui xml code
  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • 如何在Android Studio中关联.mp3文件

    我想根据列表视图项单击播放 mp3 文件 但是根据我的代码 我运行我的应用程序 出现此窗口 因此由于缺少音频选项 我真的不知道需要选择其中哪一个为了关联我的 mp3 文件 mainList setOnItemClickListener ne
  • 用 Java 捕获扬声器输出

    使用Java可以捕获扬声器输出吗 此输出不是由我的程序生成的 而是由其他正在运行的应用程序生成的 这可以用 Java 完成还是我需要求助于 C C 我有一个基于 Java 的应用程序 使用过的爪哇声音 https stackoverflow
  • 使用 Spring 注入 Google Guava Hashmultimap

    是否可以提供一个创建示例Multimap
  • 摆动刷新周期

    我试图了解何时使用重新验证 重绘 打包 令人惊讶的是 我没有找到详细的底层文档 请随意链接 到目前为止我已经明白这都是 RepaintManager 的责任 油漆 重新油漆指的是脏 干净的东西 pack validate revalidat
  • Hibernate3:自引用对象

    需要一些帮助来了解如何执行此操作 我将在文件系统上运行递归 查找 并且希望将信息保留在单个数据库表中 具有自引用的层次结构 这是我想要填充的数据库表结构 目录对象表 id int NOT NULL name varchar 255 NOT
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • 使用 colt java lib 时出现“矩阵太大”异常

    我正在使用 cern colt matrix lib 进行稀疏矩阵计算 但似乎我一直遇到此错误 线程 main 中的异常 java lang IllegalArgumentException 矩阵太大 我认为这是因为构造函数在 nrows
  • Java可以进行进程监控吗?

    是否可以用Java编写一个在托盘中运行的应用程序 并且当启动某个应用程序时 它可以检测到它 我想对某些程序执行此操作 以了解我每周使用它们多长时间 我是 Java 新手 所以我不知道 Java 是否是最适合此操作的语言 或者它是否具有对操作
  • Hive NVL 不适用于列的日期类型 - NullpointerException

    我正在使用 HDFS 上的 MapR Hive 发行版并面临以下问题 如果表的列类型是 日期 类型 则NVL https cwiki apache org confluence display Hive LanguageManual UDF
  • Selenium Webdriver 中的 IF 语句

    我想知道是否有人可以帮助我解决我正在尝试解决的问题以及 Java 中 Webdriver 的 If 语句 当登录到我正在测试的应用程序时 可以在主页之前进入安全问题页面 如果是新用户等 我希望测试中的代码做的是 如果出现安全问题页面 请填写
  • 如何更改MultipartFile的originalFilename

    我在服务器端有一个 MultipartFile 文件 我想更改该文件的原始文件名 但该类仅支持 getOriginalFilename 谁能帮我这个 PS 上传的是图片文件 多谢 您可以使用 MockMultipartFile 类更改名称
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa

随机推荐

  • 对于 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