【问题标题】:Numeric value out of range for a DOUBLE(5,5)DOUBLE(5,5) 的数值超出范围
【发布时间】:2016-09-19 05:25:35
【问题描述】:

我的数值超出范围Numeric value out of range: 1264 Out of range value for column 'Value' at row 1

当我试图做的时候

$GetLatId = $PDO -> prepare("INSERT INTO `longitude` (`Value`) VAlUE(:Val);");
$GetLatId -> bindValue(':Val',12345.12345);
try{
    $GetLatId -> execute();
}catch (PDOException $e)
{
    die($e->getMessage());
}

Value 字段为DOUBLE(5,5)

这可以是mysql配置吗?

【问题讨论】:

    标签: php mysql sql database


    【解决方案1】:

    如果您阅读文档,您会看到 Double 5,5 表示您已将最大位数定义为 5,而这 5 在小数点之后。

    Official Doc:

    MySQL 允许使用非标准语法:FLOAT(M,D) 或 REAL(M,D) 或 DOUBLE 精度(M,D)。在这里,(M,D) 表示值最多可以存储 共 M 位,其中 D 位可能在小数点后。 例如,定义为 FLOAT(7,4) 的列将类似于 -999.9999 显示时。 MySQL 在存储值时执行舍入,所以如果你 将 999.00009 插入 FLOAT(7,4) 列,近似结果为 999.0001.

    你需要存储你的值是 Double (10,5)

    【讨论】:

    • omg,.. 我确实多次阅读了该文档,但并没有像那样理解它。谢谢! (尽管这个问题现在听起来很愚蠢......)哈哈
    猜你喜欢
    • 2020-12-28
    • 2018-07-18
    • 1970-01-01
    • 2011-08-02
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2021-05-06
    相关资源
    最近更新 更多