mySQL to PHP to jQuery将浮点值返回为字符串(JSON)

时间:2015-01-15 04:33:02

标签: php jquery mysql json floating-point

我是PHP,jQuery和SQL的新手,我正在尝试从我的数据库返回数据,以便在我的javascript文件中使用。出于某种原因,我的对象将作为字符串返回,即使值应该是浮点数。

我的数据库结构将此列设置为浮点数。

以下是我的PHP代码的一部分:

$q = "SELECT object FROM $tableName";

if($q === FALSE) { 
    die(mysql_error());
}

$sth = mysqli_query ($con, $q);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = $r;
    }

print json_encode($rows);

这是我的javascript:

$.get('PHP file URL', function(data) {

    var object = JSON.parse(data);

但是,我得到以下(字符串)返回而不是浮点数:

[{"object":"34.416"},{"object":"34.589"},{"object":"33.3948"}]

我似乎无法找到已发布的同一问题。请让我知道我做错了什么。谢谢!

2 个答案:

答案 0 :(得分:0)

你有两个选择

$q = "SELECT object FROM $tableName";

if($q === FALSE) { 
    die(mysql_error());
}

$sth = mysqli_query ($con, $q);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = array('object'=> (float)$r['object'];
    }

print json_encode($rows);

或在jquery中

$.get('PHP file URL', function(data) {
    var object = [];
    $.each(data, function(){
         object.push(parseFloat(this.object))
    });

    var object = JSON.parse(data);

答案 1 :(得分:0)

快速解决方法是将列选项从无符号 ZeroFill 更改为空。