尾随零没有显示

时间:2017-12-21 15:31:37

标签: php

我有一个问题。当我的用户高度值为5.10,4.10或6.10时,高度值显示为5.1,4.1或6.1。但是,有问题的数据以5.10,4.10或6.10的形式存储在数据库中。

为什么我会看到5.1的值而不是5.10。

数据格式在MySQL数据库中存储为Float。

谢谢你, 凯文

1 个答案:

答案 0 :(得分:0)

如果您所指的高度值是英尺和英寸,即值5.10表示5英尺10英寸,您可能不应将它们存储为浮动。

就浮动而言,5.10和5.1是相同的数字。如果你想将它们存储为花车,你需要5英尺1英寸才能存储为5.01,以便能够区分5'10和5'1。所有单位数英寸值都需要以这种方式存储。 (5.02,5.03等)

您可以将它们存储为字符串,但是存在一些缺点。根据您用于存储它们的字符串格式,它们可能无法正确排序。 (例如:5'1,5'10,5'11,5'2 ......)对它们使用任何聚合函数都很困难,(平均等)

我认为最适合数据库的类型实际上是int。存储前将英尺和英寸转换为英寸。很容易重新格式化这些输出值。例如:

function formatHeight (int $inches) : string
{
    return sprintf("%d'%d", intdiv($inches, 12), $inches % 12);
}

formatHeight(63);  // returns 5'3