可能重复:
用Java表示货币价值
哪种java类型处理价格值好?请告诉我为什么?
我不知道这只是问题:)
我只知道这种类型必须"安全".因为如果我们创建商店应用或者那样的想法.
PS.我需要最好的实践
以及它在数据库中的表现方式?
Pau*_*ald 22
在处理货币时你应该使用BigDecimal.Java的本机浮点类型与其他语言存在相同的精度问题,因为某些小数不能准确地表示为浮点数.即使认为它不是特定于java,这是一篇很好的文章,它描述了将十进制值表示为浮点数的复杂性.
通常,应用程序中的瞬态值应始终使用BigDecimal,仅在必要时转换为float(用于持久性或向用户显示数据等).
您关心的最小面额整数(或长整数)(美元和欧元的美分)
这是因为计算机上的浮点本来就不适合十进制值(0.1 + 0.2!= 0.3)
您只需在用户界面中的美分和主要美元之间进行转换,而网域以美分计算所有内容