java - 如何在 Java 中识别 BigDecimal 和 Double

标签 java parsing double bigdecimal

我正在编写一个财务应用程序,我在其中获取一个字符串值,并且需要检查该值是否可以放入 double 或 BigDecimal 而不会丢失数据。

确定字符串值应转换为 double 还是 BigDecimal 的最佳方法是什么?

最佳答案

如果它是一个财务值,您几乎应该始终使用 BigDecimal - 或使用具有隐式缩放值的整数(例如存储美分而不是美元)。

float 二进制小数点(floatdouble)几乎从不适合金融应用,因为值通常具有精确的小数 不能用二进制 float 精确表示的值。

这并不意味着 double 是无用的数据类型 - 它适用于自然的连续值,例如距离。这对于通常以十进制指定的“人工”离散值来说并不好。

关于java - 如何在 Java 中识别 BigDecimal 和 Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16294315/

相关文章:

c# - Double.MinValue、MaxValue 错误的编译时间常量 -- mscorlib

c# - 尝试使用 system.globalization 将货币符号添加到值

c# - 将 double 限制为小数点后 3 位

java - 有条件的spring bean创建

java - Spring Boot 数据库只初始化一次

java - 将 Tomcat 从 8.0 迁移到 8.5,客户端证书身份验证不起作用

Java - SimpleDateFormat 格式化程序以毫秒为单位返回纪元时间

linux - 函数中的命令不能像在终端中手动输入那样工作

使用 Scheme 解析字符串

c - 如何在 C 编程中泛化 SSCANF 和#DEFINE