我正在编写一个财务应用程序,我在其中获取值作为字符串,并且需要检查该值是否适合double或BigDecimal而不会丢失数据。
识别字符串值是否应转换为double或BigDecimal的最佳方法是什么?
答案 0 :(得分:12)
如果它是一个财务价值,你应该总是使用BigDecimal
- 或者使用一个隐含缩放值的整数(例如存储美分而不是美元)。
浮动二进制点(float
,double
)几乎永远适用于财务应用程序,因为这些值通常具有精确的十进制值在浮动二进制点中不能完全表示。
这并不意味着double
是无用的数据类型 - 它适用于自然的连续值,例如距离。这对于通常用十进制指定的“人工”离散值来说是不合适的。