MySQL Decimal返回Int

时间:2013-12-01 01:30:40

标签: php mysql

我正在尝试从MySQL数据库中打印一个值;值的类型为decimal(1,2)。当我用PHP 5.2打印它时,它将它显示为int。

这是表格:

  

脚本|版本

     

1 | 1.5

     

2 | 2.0

这是我的功能:

function getVersion($script)
{
    global $mysqli;
    $stmt = $mysqli->prepare("SELECT Version FROM Scripts WHERE Script = ?");
    $stmt->bind_param("i", $script);
    $stmt->execute();
    $stmt->bind_result($version);
    while ($stmt->fetch())
    {
        printf("\"%d\"", $version);
    }
    $stmt->free_result();
    $stmt->close();
}

我认为它会打印为小数,因为我选择的格式是小数;我没看到什么?我尝试使用number_format,但这没有帮助。

2 个答案:

答案 0 :(得分:3)

%d格式的'd'代表“十进制”,如“基数10”,而不是“带小数部分的数字”。如果您希望显示分数,请改用%f

答案 1 :(得分:0)

 printf("\"%1\$.2f\"", $version);

这样就强制执行十进制(1,2),因为只有%f会在浮点数中显示最大小数,这在我的平台上是6。