首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原理从数据库中选择不带小数位的浮点值

原理从数据库中选择不带小数位的浮点值
EN

Stack Overflow用户
提问于 2015-10-23 01:21:58
回答 1查看 467关注 0票数 2

我正在创建一个像这样的理论实例

代码语言:javascript
复制
$dbalConfig = new \Doctrine\DBAL\Configuration();
$dbal = \Doctrine\DBAL\DriverManager::getConnection($dbalConn, $dbalConfig);

dbalConfig只是mysql连接设置+将字符集设置为utf-8

当我现在执行查询时:

代码语言:javascript
复制
$sql = "SELECT price FROM products";
$stmt = $dbal->prepare($sql);
$stmt->execute();
$products = $stmt->fetchAll();

并将结果转储

代码语言:javascript
复制
var_dump($products);

我得到的所有值都是这样的

代码语言:javascript
复制
[1]=>
array(1) {
["price"]=>
float(17)

但是,在数据库中,该值存储为浮点型,如下所示的17.90

我需要什么才能获得正确格式的数据?我不能将数据库中的列类型从float更改为其他类型,因为它不属于我。有没有可能以某种方式获得正确的值?

EN

回答 1

Stack Overflow用户

发布于 2015-10-23 16:30:24

我修复了这个问题。问题是,我是一个德国用户。哈哈,这不完全是问题所在,但却与此有关。

我使用的站点将LC_NUMERIC设置为de_DE.UTF-8。将其更改为en_US.UTF-8时,它可以正常工作,没有任何问题。

代码语言:javascript
复制
setlocale(LC_NUMERIC , 'en_US.UTF-8');

看起来本地化是“错误的”。

但!有没有办法把美国格式转换成德国格式?因为我真的不认为因为我收到的数据而简单地更改LC_NUMERIC的方法是正确的,对吧?这听起来像是一个又快又脏的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33286897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档