首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MySQL将2小数的四舍五入除以一个未被排除的值?

问为什么MySQL将2小数的四舍五入除以一个未被排除的值?
EN

Stack Overflow用户
提问于 2020-12-23 18:35:10
回答 1查看 337关注 0票数 0

我有一张有以下数据的表格:

面积VARCHAR(50),收入小数点(20,2),费用小数(20,2),PercentBilled小数(6,2)

这些值是从电子表格中导入的,所显示的百分比不够精确。它四舍五入到小数点2位。我可以用收入/费用来计算它,但我没有得到我所期望的价值。

选择* from返回“计数器”,-1822.90,2749.63,0.66

1822.90/ 2749.63 =-0.6629619.其绝对值约为66.3%,这是我所需要的精度。

那么,为什么当我运行以下查询时:选择Area,(收入/费用)作为calcPercentBilled,PercentBilled从

我得到:‘计数器,-1822.90,2749.63,1.000000,0.66?

我猜这是MySQL和类型的古怪之处,但我不知道发生了什么。为什么MySQL将查询中的两个小数除法舍入为1.000000?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-23 18:45:34

问题在于您为PercentBilled指定的数据类型。DECIMAL(6,2)是指在小数点之后用6位数字存储值,其中2位数字。因此,为了提高存储值的精度,您需要更改列的类型,可能会更改为DECIMAL(9,6)。这将允许将示例中的值存储为"0.662962“(即小数点6位)。

请注意,只更新列的类型不会提高丢失的精度,除非您从源重新导入数据。只需更改数据类型而不重新加载数据,就会将其更改为"0.660000“。

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

https://stackoverflow.com/questions/65429258

复制
相关文章

相似问题

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