专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

金钱货币用什么类型--(Java)

0、前言

  项目中,基本上都会涉及到金钱;那么金钱用什么数据类型存储呢?

  不少新人都会认为用double,因为它是双精度类型啊,或者float,

  其实,float和double都是不能用来表示精确的类型的,也就是说金钱是万万不能用float和double来存储的!

1、why?

先来个例子:

99_1.png

你猜猜输出是什么,0.01?NO,请看:

99_2.png

  为什么会这样呢?

   因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定.

  常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是!

  所以说,float和double都是不能用来表示精确的类型的;

  金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.

2、结论

  float和double都是不能用来表示精确的类型的,也就是说金钱是万万不能用float和double来存储的!

  金钱应该采用java.math.BigDecimal存储;

  MYSQL数据库选择decimal类型,注意默认值 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦!

3、BigDecimal的常用方法

99_3.png

99_4.png

99_5.png

文章永久链接:https://tech.souyunku.com/31903

未经允许不得转载:搜云库技术团队 » 金钱货币用什么类型--(Java)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们