【问题标题】:How to store a float number with a 0 decimal in database如何在数据库中存储小数为 0 的浮点数
【发布时间】:2018-10-23 11:51:54
【问题描述】:

我需要将汽车的发动机容量存储在数据库中,我想像这样添加它:

2.0, 2.4, 3.0 etc.

如何存储2.03.0

我尝试了这种列类型:float、decimal、double,但没有任何效果,因为 2.0 将变为 23.0 将变为 3 等等。

知道我该怎么做吗?

一种解决方案是创建专栏varchar,但这不是一个好主意。

【问题讨论】:

  • 数字就是数字。 2.02.000200000020b10 和任何数量的其他表示形式相同。 2.0 的呈现是一个显示 问题。在输出时使用所需的基数、所需的小数位数、前导零等将数字格式化为字符串。
  • 我认为几乎可以肯定您的 SQL 客户端将其显示为 2,而不是您的数据库将其保存为 2。您没有提到您使用的数据库软件,但我无法想象有任何服务器不会存储 FLOATDECIMAL 类型。
  • 列类型 decimal(6,1) 就足够了。
  • 我怎么看这个...在显示时我需要检查数字是否是整数。如果是 {echo $number.'.0';} else {echo $number} 你有更清洁的想法?:-?
  • @user3647971 做到了!将其发布为答案

标签: php database floating-point numbers


【解决方案1】:

在 create 语句中使用数据类型为" engine DECIMAL(2,1) ",然后您可以在数据库中存储一个十进制值(这仅适用于 MySQL)。

文档:fixed point type

【讨论】:

  • 正如@user3647971 在 cmets 中所说,十进制(6,1)和十进制(3,1)一样可以完成这项工作。你能解释一下小数(10,1)(默认)和(6,1)或(3,1)有什么区别吗?
【解决方案2】:

请根据您的值使用长度/值为 10,1 或 2,1 或 3,2 的十进制数据类型

`amt` DECIMAL(10,1) NOT NULL 

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多