首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySql中存储完全相同的小数点

问在MySql中存储完全相同的小数点
EN

Stack Overflow用户
提问于 2020-01-07 18:51:19
回答 2查看 104关注 0票数 1

我有一个列名为cost,它的数据类型为decimal(20,8),当我尝试插入数据时,它会附加额外的000s。

例如,如果我在插入时插入10.11,它将被存储为10.11000000

我想做的是只插入插入的小数点,无论它是10.11,然后按原样存储,如果是10.0012,则按原样存储。

我如何使用MySql和NodeJS实现这一点?

我见过cast()和其他函数,但我不希望它处于查询级别。

在表或DB结构端有什么可以做的吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-07 20:03:42

基本上你不能,我将在下面解释原因:

您已经为此特定列设置了decimal(20,8)数据类型。因此,从二进制的角度来看,该列将存储20位。然后是8位。您将输入的所有数据都将具有该特定长度。值不是000000000010.11000000值的原因是因为0在数字之前从不显示,然而,如果我们必须查看值在内存中占用的位数,这将是它的值。decimal(20,8)的数据类型总共可以接受以下范围的数字;从:-999999999999.99999999到999999999999.99999999,这意味着总共可以有20位数字,其中8位在小数点之后。

总而言之,数据库中的值将始终以该格式保存。如果您希望修改前端以删除尾随的零,则需要在node.js中执行此操作。

票数 2
EN

Stack Overflow用户

发布于 2020-01-07 19:12:12

将值存储在数据库中与显示值时使用的格式是不同的。当您有一个数据类型为decimal(20,8)的列时,它将允许最多8个小数。当您存储值10.11、10.110、10.1100或10.11000000时,它们都保存为相同的10.11值。

当您从数据库(命令行客户端,任何应用程序)读取值时,该应用程序确定如何显示该值。例如,命令行客户端选择显示所有小数。

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

https://stackoverflow.com/questions/59626958

复制
相关文章

相似问题

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