java - 处理账户交易和资金时 float 或双倍

标签 java

我一直想知道在我的简单代码问题中如何使用 float 和 double 。就金钱而言,用户将能够输入存款金额并打印出当前余额。金额不会太大(我认为 double 值非常适合),但更重要的是我希望它显示为两位小数。 我目前使用的是 float ,但只显示一位小数,而且我也无法添加两位小数的金额。有没有办法限制添加量并限制其只有小数点后两位?也许我可以添加一个简单的条件。

最佳答案

您不应使用floatdouble进行财务计算;舍入误差可能会在意想不到的地方累积。如果您不需要超过 0.01 美元的分辨率,请使用 intlong 并以美分为单位进行所有计算。仅在输入和输出时在美分和美元(或您使用的任何货币)之间进行转换。

如果您需要超过 0.01 美元的分辨率(例如,用于中间计算),那么您应该使用 BigDecimal数字。它专为需要非常高精度的财务计算等应用而设计。

关于java - 处理账户交易和资金时 float 或双倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939906/

相关文章:

java - Hmlt5 音频不适用于 java http 服务器

java.util.BitSet——set() 没有按预期工作

java - 如何在 Apache 反向代理后面的子目录上设置 Play?

java - 获取 Spotify URI android studio

java - 如何为 Swing 应用程序使用自定义外观?

java - 如何将视频设置为全屏

java - WSDL 能否在 Java 项目的构建/编译时获取?

java - 如何从 Selenium Java 中禁用的输入字段中获取文本

java - SSE实现(Weblogic 12.2.1.2.0 + Jax-RS 2.1(用于注册资源)+ CXF 3.2.5+ + Springboot + jersey 2.25.1)

java - 如何为显式抛出的异常编写 junit 测试