在 Java 中应该使用什么舍入方法来计算金钱?

2024-01-14

假设我在 Java 中有一个代表金钱的十进制值。

舍入这些值的最佳方法是什么?

例如,如果我有一个根据税率计算的值,那么我最终会得到以下结果:5.3999999999999995作为税额,我是否应该将其四舍五入到小数点后两位:

double d = 5.3999999999999995
BigDecimal bd = new BigDecimal(d).setScale(2, RoundingMode.HALF_EVEN);
d = bd.doubleValue();

产生货币价值:

5.40

大多数计算金钱的应用程序不使用浮点(double, float);他们使用代表较小单位的整数。例如,以美元为例,货币可以表示为pennies即 1/100 美元。

为了获得更高的准确性,您可能需要一个代表 1E-03(“毫美元”)或 1E-06 的整数。这取决于利息计算和您的精确度等问题。

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

在 Java 中应该使用什么舍入方法来计算金钱? 的相关文章

随机推荐

  • 在事件中使用 Context/Toast 时出现不需要的重组 - Jetpack Compose

    在 Jetpack Compose 应用程序中 我有两个与此处类似的可组合项 Composable fun Main println Composed Main val context LocalContext current var te
  • 将 Octave 转换为使用 CuBLAS

    我想将 Octave 转换为使用 CuBLAS 进行矩阵乘法 该视频似乎表明这就像输入 28 个字符一样简单 使用 CUDA 库加速应用程序 http youtu be P2Ew4Ljyi6Y t 1m59s 实际上 情况比这更复杂一些 有
  • 无符号和有符号比较

    这是非常简单的代码 include
  • 如何监控Event Dispatch Thread队列?

    我有一个繁重的java项目 它无法响应用户 我发现事件调度线程中需要很长时间的事件会导致我的项目运行缓慢 所以 我有两个问题 如何监视事件调度线程并查看队列中的事件以及最终哪些事件在事件调度线程中花费更多时间 如您所知 invokeLate
  • 为什么我应该在 Perl 中使用 Carp 而不是 warn ?

    人们总是给我举鲤鱼的例子 而不是警告我 为什么 是什么让鲤鱼比警告更好 carp 为您提供有关消息来源的更多信息 上下文 usr bin perl use Carp foo bar baz sub foo warn foo sub bar
  • ios6 和 ios7 之间不同的垂直对齐字体

    我对 iOS6 和 iOS7 之间的垂直对齐字体有一些问题 我有一个自定义字体 在 iOS6 中比垂直对齐的中心高一点 UIButton 那么我做到了吗 我已经设置了myButton titleEdgeInsets UIEdgeInsets
  • Jackson无法反序列化(Spring Cloud Stream Kafka)

    我试图从 kafka 读取 json 消息并收到异常 该异常表示 Jackson 无法将 json 反序列化为 POJO json就像 code 500 count 22 from 1528343820000 to 152834388000
  • 如何让(1 << 9)通过MISRA? [复制]

    这个问题在这里已经有答案了 我们使用 Parasoft 静态分析并打开 MISRA C 2004 检查器 该软件是一个嵌入式系统 我们喜欢这样描述常量 1 define MOTOR ON 1 lt lt 9 这表明寄存器中的第 9 位应该是
  • 在 Laravel 中使用 Eloquent 多态关系对数据进行分类

    在我的应用程序中 我有一个类别表和多个表 包括需要分类的服务和文章 为了方便起见 我想对这些数据使用多态模型 创建类别供服务或文章使用 例如 一旦表被定义为服务表 它就不会显示为可添加文章的可能类别 这也适用于上市 我将有一个文章菜单和一个
  • 将多种日期时间格式转换为一种标准格式

    我正在尝试在 R 中执行一些简单的操作 在加载表后 我遇到了一个组合了多种格式的日期列 Date 1 28 14 6 43 PM 1 29 14 4 10 PM 1 30 14 12 09 PM 1 30 14 12 12 PM 02 03
  • 从 Django JSONField 获取值

    我正在尝试从模型中的 JSONField 检索值 但出现错误 Api 对象没有属性 openapi spec info title class Api models Model Model to hold infomation on the
  • 在 woocommerce 搜索中包含自定义字段值

    我尝试在 woocommerce 中包含自定义字段值search但我有一个问题 在 Google 和 Stack 上 我也看到了带有 pre get posts 的示例 所以我认为这是一个很好的方向 我编写了如下代码 function cu
  • MVC3 Html.DisplayFor -- 是否可以让该控件生成 ID?

    我希望能够显示一些文本 而且还可以通过 jQuery 修改文本 如果我使用 EditorFor 而不是 DisplayFor 我会看到输入控件的 ID 不过 我不希望该值以这种方式可编辑 因此 我将其设为 DisplayFor 但它不会为该
  • 类型必须满足静态生存期

    我正在尝试增加 Rust 和 GTK RS 应用程序的结构 但我不知道如何处理事件连接 我发现问题出在错误的生命周期中 但我真的不明白如何解决它 derive Debug struct CreatingProfileUI window gt
  • SQL 计数(*) 和非重复

    为什么我们不能使用count distinct 在 SQL 中 比如计算所有不同的行 select count from select distinct from MyTable as T 尽管我强烈建议您重新考虑使用的任何查询DISTIN
  • 是什么 ”?” php 中使用的 URL 中的符号?

    我是 PHP 新手 在学习PHP语言的过程中 我注意到 有些网站会出现这样的URL www website com profile php user roa3 我的问题 是什么 符号用于 如果我要开发一个 php 网站 我必须在 URL 中
  • 如何将 ImageMagick 环境变量传递给 nginx mongrels?

    我的 Rails 应用程序使用 ImageMagick 但应用程序在尝试执行 ImageMagick 命令 识别 时失败 我通过在 Apache 配置中传递以下环境变量解决了开发中的这个问题 我正在运行 Apache Passenger S
  • 我应该在 DTO 中使用构建器模式吗?

    这可能是一个相当主观的问题 但我想知道更多的意见 我使用 Spring MVC 构建了 Rest API 服务 并实现了 DTO 域 实体模式 我想知道您对实施该法案有何看法建造者模式 https en wikipedia org wiki
  • “ecb”不适用于 Cordova 和推送插件

    我尝试使用演示使用 PushNotification 注册我的设备 这不起作用 打印 Cordova PushNotification Plugin Demo 和 registering android 并查看警报 OK successHa
  • 在 Java 中应该使用什么舍入方法来计算金钱?

    假设我在 Java 中有一个代表金钱的十进制值 舍入这些值的最佳方法是什么 例如 如果我有一个根据税率计算的值 那么我最终会得到以下结果 5 3999999999999995作为税额 我是否应该将其四舍五入到小数点后两位 double d