首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止mysql舍入浮动值?

如何阻止mysql舍入浮动值?
EN

Stack Overflow用户
提问于 2017-01-05 18:29:24
回答 2查看 9.3K关注 0票数 7

我将货币值作为浮动存储在mysql表中。

问题是,mysql正在将数字向上或向下舍入。

例如。12345.68被四舍五入到12345.7

如何才能阻止这种情况,或者是否应该使用更好的数据类型?

我想保留小数点2位内的原始值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-05 18:36:00

不要使用FLOAT类型。使用DECIMAL代替。浮点数将十进制数字转换为二进制数,这会导致舍入(精度损失)。十进制将数字存储为小数-没有转换。

在您的例子中,将列定义为DECIMAL(12,2)应该是可以的。根据数字的预期大小选择宽度(第一个数字)。在本例中,预期大小为12位(包括小数点后的数字)。

票数 12
EN

Stack Overflow用户

发布于 2017-01-05 18:32:08

将适用列的定义从其当前设置更改为:

代码语言:javascript
复制
FLOAT(9,2)

前一段中的2指示MySQL保持2位小数点以下的值。目前它很可能被设置为1,因此被观察到的行为。可以随意地将9更改为更适用的值。

更多关于浮标与精度的报道。

decimal

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

https://stackoverflow.com/questions/41492160

复制
相关文章

相似问题

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