【问题标题】:Decimal comma instead of decimal point小数点逗号代替小数点
【发布时间】:2014-03-06 12:27:29
【问题描述】:

如何通过在 php.ini 中设置小数点将小数点更改为小数点逗号无需更改任何代码在我在 Windows 上运行的本地服务器上?

3.14 >> 3,14

我试着设置

intl.default_locale = cs_CZ 

没有任何结果。

编辑:我问的原因是,如果我在主机上执行代码,我会得到带十进制逗号的数字,但是当我将相同的代码传输到本地服务器时,会有一个小数点.问题在哪里?

例如 - Linux 主机:

echo 100 / 3; // 33,333333333333

Windows 上的本地服务器:

echo 100 / 3; // 33.333333333333

是什么原因?

编辑 2:如果我使用

setlocale(LC_NUMERIC, 'cs_CZ');
echo 100 / 3;

我会得到相同的结果33.333333333333,所以catch 必须在配置文件或Windows 本身中。

【问题讨论】:

  • 为什么你想这样做?如果您要将它们用作小数,那么为什么不这样存储呢?对我来说,这听起来像是XY problem。也许您可以就您想要达到的目标添加更多解释——这样,您将获得更多准确的答案。
  • 因为在捷克共和国我们使用十进制逗号。
  • 所以你应该在网站的“前端”部分使用它之前将其转换或在计算中使用它之前将“逗号”转换为“点”

标签: php


【解决方案1】:

intl.default_locale 仅为intl 函数设置区域设置,请参阅this comment

如果您的代码不使用 intl 函数来格式化数字,则无法更改代码。应该像将货币/数字格式的语言环境设置为捷克语一样简单。

为了钱:

setlocale(LC_MONETARY, 'cs_CZ');

对于数字:

setlocale(LC_NUMERIC, 'cs_CZ');

【讨论】:

    【解决方案2】:

    所以我发现只有这样,你才能在 Windows 上做到这一点:

    setlocale(LC_ALL, 'czech');
    

    感谢http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx

    【讨论】:

      【解决方案3】:

      对于 Linux:

      这是本地配置问题,可能是最近安装了php-intl后,无意间给你改的。

      编辑您的 /etc/default/locale 文件并将 LC_NUMERIC 行更改为

      LC_NUMERIC = "en_GB.UTF-8"

      您可能想在此处更改任何其他设置,然后重新启动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2012-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        相关资源
        最近更新 更多