十进制数据库到 JSON



我的数据库中有十进制数据类型,值为 0.00,但在 JSON 结果中为 .00,我如何转换以便我仍然可以获得 0.00 的结果?

我在Jquery工作。谢谢

这是我的代码

<?php 
include "../../../config/config.php";
$kd_entitas=$_POST['kd_entitas'];
$tglAwal = $_POST['tglAwal'];
$tglAkhir = $_POST['tglAkhir'];
$con = sqlsrv_connect(serverNameAST,$connectionInfoAST) or die('Unable to Connect');
if( $con === false )
{
echo "Could not connect.n";
die( print_r( sqlsrv_errors(), true));
}
else{
//$sql = "SELECT SELECT @rownum := @rownum + 1 AS urutan, t.* FROM SYS_DEPT t, (SELECT @rownum := 0) r";
$sql="[Daily_report_r] '$kd_entitas','$kd_entitas','$tglAwal','$tglAkhir'";
$result = sqlsrv_query($con, $sql, array(), array( "Scrollable" => 'static' ));
$data = array();
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
{
$data[] = $row;
}

$datax = array('data' => $data);
echo json_encode($datax);
}
?>

结果 JSON in field oustand

来自我的数据库 sql 服务器的结果

你在这里有两个问题:

  1. 从数据库获取数据时,所有值都将是字符串。如果您希望特定数字为双精度数,则必须将其显式转换为双精度数。

  2. 如果要在 json 中保留零分数,则必须在json_encode中使用JSON_PRESERVE_ZERO_FRACTION标志。有关详细信息,请参阅 http://php.net/manual/en/function.json-encode.php。

但是此解决方案将仅保留一个零,并且仅适用于双精度类型的数字。如果你想在昏迷后有更多的零,你必须把数字留在字符串中并自己处理。

如果返回的数据库中的数字没有分数部分,请检查您的字段类型或字段精度。

最新更新