Php 条令从数据库中选择不带小数点的浮点值

Php 条令从数据库中选择不带小数点的浮点值,php,mysql,doctrine-orm,precision,Php,Mysql,Doctrine Orm,Precision,我正在创建这样一个doctrince实例 $dbalConfig = new \Doctrine\DBAL\Configuration(); $dbal = \Doctrine\DBAL\DriverManager::getConnection($dbalConn, $dbalConfig); [1]=> array(1) { ["price"]=> float(17) dbalConfig只是mysql连接设置+将字符集设置为utf-8 现在执行查询时: $sql = "SEL

我正在创建这样一个doctrince实例

$dbalConfig = new \Doctrine\DBAL\Configuration();
$dbal = \Doctrine\DBAL\DriverManager::getConnection($dbalConn, $dbalConfig);
[1]=>
array(1) {
["price"]=>
float(17)
dbalConfig只是mysql连接设置+将字符集设置为utf-8

现在执行查询时:

$sql = "SELECT price FROM products";
$stmt = $dbal->prepare($sql);
$stmt->execute();
$products = $stmt->fetchAll();
并转储结果

var_dump($products);
我得到了所有这样的价值观

$dbalConfig = new \Doctrine\DBAL\Configuration();
$dbal = \Doctrine\DBAL\DriverManager::getConnection($dbalConn, $dbalConfig);
[1]=>
array(1) {
["price"]=>
float(17)
但是,在数据库中,该值以浮点形式存储,如下所示
17.90


我需要什么来获得正确格式的数据?我不能在数据库中将列类型从float更改为其他类型,因为它不属于我。是否有可能获得正确的值?

我解决了这个问题。问题是,我是德国用户。呵呵,这不完全是问题所在,但与此有关

我正在使用的站点已将
LC\u NUMERIC
设置为
de\u de.UTF-8
。将其更改为
en_US.UTF-8
时,其工作无任何问题

setlocale(LC_NUMERIC , 'en_US.UTF-8');
似乎本地化是“错误的”

但是!难道没有办法把美国格式转换成德国格式吗?因为我真的不认为因为我收到的数据而简单地更改
LC\u NUMERIC
是正确的方法,对吗?这听起来像是一个快速而肮脏的解决方案