PDO 返回以逗号作为小数点分隔符的浮点数

发布于 2024-10-05 02:44:31 字数 244 浏览 3 评论 0原文

显然,PDO 使用 php LC_NUMERIC 类别根据结果集中的当前区域设置来格式化浮点数的输出。

这是一个巨大的 PITA,因为我实际上需要 LC_NUMERIC 来格式化我的数字,但来自数据库的结果应始终使用点作为小数分隔符,否则我的计算将失败。

任何人都知道是否可以配置 PDO,这样它就不会使用 php 语言环境来格式化查询结果中的浮点数。

另一种选择是大量的语言环境杂耍,我宁愿不这样做,除非这是绝对的最后措施。

Apparently PDO uses the php LC_NUMERIC category to format the output of floats according to the current locale in the resultsets.

This is a huge P.I.T.A. since i actually need the LC_NUMERIC to format my numbers but the results coming from the database should at all times be using the dot as decimal separator, else my calculations will be off.

Anyone has an idea if it's possible to configure PDO so it won't be using the php locale to format floats in query results.

Another option is a lot of locale juggling which i would rather not do, unless it's an absolute last measure.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伤感在游骋 2024-10-12 02:44:31

尝试 PDO::setAttribute

PDO::ATTR_STRINGIFY_FETCHES:获取时将数值转换为字符串。需要布尔值。

在这种情况下将为假

Try PDO::setAttribute

PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.

will be false in this case

荒岛晴空 2024-10-12 02:44:31

这似乎是 PHP 5.1.4 中的一个错误,我们与我们的托管提供商的技术人员一起检查了 php.net 上的发行说明和错误日志,但找不到与此行为相关的任何内容,然后我们使用php 5.2.1 问题就消失了。

尚未确认,但它似乎是与我们使用的特定 php 版本或 mysqllib 相关的错误。

It appears to be a bug in PHP 5.1.4, we've checked release notes and buglogs on php.net along with a technician from our hosting provider and couldn't find anything related to this behaviour, then we upgraded to a vps using php 5.2.1 and the problem disappeared.

It's not confirmed but it appears to be a bug related the the specific php version or mysqllib we were using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文