Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个金融应用程序,其中我将一个值作为字符串获取,并且需要检查该值是否可以适合 double 或 BigDecimal 而不会丢失数据。
确定字符串值是否应转换为双精度或 BigDecimal 的最佳方法是什么?
如果它是一个财务价值,您几乎应该总是使用BigDecimal- 或使用具有隐式缩放值的整数(例如存储美分而不是美元)。
BigDecimal
浮点二进制点 ( float, double) 几乎不适合金融应用程序,因为这些值通常具有精确的十进制值,而这些值不能以浮点二进制点精确表示。
float
double
这并不意味着double它是一种无用的数据类型——它适用于自然的、连续的值,例如距离。这对于通常以十进制指定的“人工”离散值来说并不好。