首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >货币的浮点精度:在MySQL查询中使用"round“函数与PHP

货币的浮点精度:在MySQL查询中使用"round“函数与PHP
EN

Stack Overflow用户
提问于 2015-07-28 18:10:30
回答 1查看 806关注 0票数 5

我使用的是美元金额。在MySQL数据库中,以下字段fee和rate(百分比)为DECIMAL类型,小数精度为2。

代码语言:javascript
复制
SELECT ROUND(fee * (1- rate/100))),2 ) as profit
from products

既然query只是返回值,而不是将它们保存在变量中,那么精度问题*是否仍然存在( PHP或JS附带的)?如果是这样,最好在PHP或JS中对浮点数进行舍入?

*是的,我指的是保存双精度时出现的精度问题,例如1.5可能会保存为1.49999999

EN

回答 1

Stack Overflow用户

发布于 2015-08-06 23:59:38

其他人可能也提到过这一点,但我想让您知道我在PHP中处理金钱计算的系统。

我使用整数。问题是,我让每个增量代表我需要的最高精度。对于我的大多数应用程序,这是百分之一美元,或1美分。但是,您可以将其设置为百万分之一或您需要的任何值。

因此,在实践中,当精度为百分之一时,$.01表示为1,$.10表示为10,$1.00表示为100,依此类推。这确实消除了舍入问题,因为您将只处理整数,因为任何计算的小数部分都将被截断。这是可以的,但是,因为整数表示您需要的最好的精度。

诚然,这需要更多的开发来处理,但舍入不应该是突然出现的问题之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31673288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档