我正在编写一款财务应用程序,在其中获取字符串值并需要检查该值是否能够转换为double或BigDecimal类型而不会丢失数据。有什么最好的方法来确定是否将字符串值转换为double或BigDecimal?
如果涉及到金融价值,你几乎总是应该使用BigDecimal - 或者使用带有隐式比例值的整数(例如存储美分而不是美元)。对于金融应用程序,浮点二进制点(float,double)几乎从来不适用,因为这些值通常具有精确的十进制值,而这些十进制值在浮点二进制中无法准确表示。这并不意味着double是一种无用的数据类型 - 对于像距离这样的自然连续值它很好用。它只是不适合“人工”离散值,这些值通常以十进制形式指定。