DecimalFormat解析Double.toString()表示(可以是科学和金融格式)。
为什么 Sun 选择了这种方法,而不是直接将 double 转换为 String?
PS:更具体一点。为什么 DecimalFormat 在内部使用 Double.toString() 来格式化 Double,而不是格式化 Double 本身的内部表示?
DecimalFormat解析Double.toString()表示(可以是科学和金融格式)。
为什么 Sun 选择了这种方法,而不是直接将 double 转换为 String?
PS:更具体一点。为什么 DecimalFormat 在内部使用 Double.toString() 来格式化 Double,而不是格式化 Double 本身的内部表示?
DecimalFormat 通过允许您为其提供格式模式,使您可以更好地控制格式。
也许 Sun 正在遵循DRY原则。
可能他会问像“Double.toString(withSomeParameters)”这样的工作,而不是使用 DecimalFormat。
我认为原因可能是 i18n。在某些地方您可以输入 1,800.39 .. 而在其他地方您可以输入 1.800,39
我不确定您所说的“直接转换”是什么意思,但toString()
始终只是调试信息!您不应该使用它在前端显示值。用于DecimalFormat
解析和格式化!
对于金融应用程序,请改用 BigDecimal,它可以让您控制舍入模式和精度。