当前位置: 首页 > 知识库问答 >
问题:

如何用Bigdecimal存储300.00[重复]

林和畅
2023-03-14
BigDecimal expectedAmount = BigDecimal.valueOf(3000.00);
BigDecimal expectedAmount = BigDecimal.valueOf(3000);
BigDecimal expectedAmount = new BigDecimal(3000.00);
BigDecimal expectedAmount = new BigDecimal(3000);

它们都存储3000.0,但我想为我的junit测试存储3000.00。不知道怎么做。

共有1个答案

郭建华
2023-03-14

还有两个选择:

BigDecimal expectedAmount1 = new BigDecimal(3000).setScale(2);
BigDecimal expectedAmount2 = BigDecimal.valueOf(300000L, 2);

第一个只适用于整数。然后,.setScale(2)只是“在小数点后加两个零”。第二个需要一个重新缩放的值(例如,如果要表示美元,则为整数美分),并声明小数点位于末尾左侧两位数。

这两个版本都不需要字符串表示,这可能是一个相当大的性能优势。

 类似资料:
  • 问题内容: 我仍然有BigDecimal的(眼泪开始跟踪大问题在这里,并继续在这里至今。 现在我遇到了相反的问题-从POJO中的BigDecimal到SQLite表中的REAL。 POJO定义为: 这段代码试图使数据形式正确,以便能够发布到SQLite表(其中相应的列是数据类型REAL,这是SQLite唯一的实数/浮点数据类型): 对于上面的COLUMN_COST行(“ MARGIN”和“ LIS

  • 我想编写一个存储过程来将数据插入到表中,并检查是否已经存在相同的数据? 如果是,则异常抛出为已经存在。但我不知道应该在哪里添加异常。请帮忙。

  • 我读到BigDecimal.equals的Java博士说: 将此BigDecimal与指定的对象进行相等比较。与compareTo不同,此方法仅当两个BigDecimal对象的值和比例相等时才认为它们相等(因此,使用此方法进行比较时,2.0不等于2.00)。 但是当我测试它时,不知何故我得到了意想不到的结果,等于。我想,出于同样的原因,当我把和放在中时,大小为1,而我预期大小为2。请看下面的代码,

  • 我是JWT新手,我只是将其作为JSON中的java对象返回,并制作了一些过滤器,以便它可以像Spring Security中的session_id一样工作。 但是我不明白JWT是如何存储在客户端的,在服务器响应之后它会去哪里?它是否由coockies中的所有浏览器自动存储?所有浏览器都支持JWT吗? 我很感激你的回答。

  • 我一直在使用firebase RTDB,我准备将它迁移到FireStore。 我有与许多其他节点关联的userid。 例如,我有、、。 为了将user与其他集合关联,我使用了、,因为RTDB不支持复杂查询,我希望能够查询特定用户日期范围之间的消息。 现在,我意识到firestore在数据查询方面要比RTDB好得多,并且将具有和和的集合。 在这种情况下,我应该在和集合中存储还是整个文档?

  • 问题内容: 这个问题已经在这里有了答案 : UTF-8贯穿始终 (15个答案) 5年前关闭。 我将PHP字符集设置为: 我已经将MySQL中的列设置为collat​​ion 。 但是,PHP中的以下代码: 在MySQL中产生以下字符: 如何获得符号以正确存储在MySQL中? 问题答案: 确保您的 脚本文件 (包含该行的文件) 编码为UTF-8。您应该在编辑器或IDE的“另存为”对话框中选择一种效果