跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个问题,为何价格这个属性有时使用 String 类型?
未分類
26 4 月 2020

请教一个问题,为何价格这个属性有时使用 String 类型?

请教一个问题,为何价格这个属性有时使用 String 类型?

資深大佬 : niceTeen84 16

价格存的可能比如 ¥123,234,45.00 这种类型?
大佬有話說 (9)

  • 資深大佬 : hedamao9999

    为了避免浮点型数据精度误差,比如 0.1+0.2≠0.3 的问题。
    很多数据库和语言上都有十进制数据类型大多是基于字符串实现的数学计算,比原生数值类型计算慢很多,但能保证精度。

    当然还有用整型的,然后以分为单位,比如 1 元钱记为 100,不过遇到除法可能还是有精度不足的问题。

  • 資深大佬 : libook

    要具体情况具体分析,举例我们行业特殊,价格到厘,所以价格乘以 10000 存 int,然后发现最多只能存 21 万,最后又换成 bigint 了。

  • 資深大佬 : qiayue

    长见识了,我只遇到分做单位的场景,还有厘…

  • 資深大佬 : yukiloh

    1. 计算机浮点数误差,0.6000000000000001 这种见过吧
    2. 传统的‘数’是由上限的,可能会溢出

    所以常常通过转成字符串来处理,这就是 Decimal 这个类型做的事情。

  • 資深大佬 : Vegetable

    计算机浮点数计算不精确

  • 資深大佬 : azcvcza

    今天刚好看到有一篇推文讲这个问题
    https://i.loli.net/2020/04/17/msMa56EDdiph39o.png

    出自: https://mp.weixin.qq.com/s/DclDMMjdIcADkSmr4AcnuA

  • 資深大佬 : fumichael

    有些后台用的是 big decimal, 在 json 里面返回可能被格式化成了 string 。

  • 資深大佬 : TimLang

    实际上标准做法就是使用字符串。。。

  • 資深大佬 : conn4575

    是的,避免精度丢失

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具