使用 DECIMAL_POINT 作为小数参数的常量时,number_format 会给出错误的输出

问题描述 投票:0回答:1

codeigniter Constants.php 文件中定义的常量。

defined('DECIMAL_POINT') or define('DECIMAL_POINT','2');

并使用它来格式化数字,如下例所示。

$number=1000000;
$amount = number_format($number,DECIMAL_POINT, '.', '');
echo $amount;

输出为: 1000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000

输出应该是1000000.00;

在我更新我的

PHP version to 8.2.8

之前,它工作得很好
php codeigniter number-formatting
1个回答
0
投票

正如 CBroecomment 中指出的那样,

DECIMAL_POINT
是 PHP 8.2.0+ 中的保留常量,并且它具有您不期望的值。

避免此问题的一个解决方案是定义自己的常量并添加前缀,这样 PHP 添加具有此名称的常量的风险就会降低:

define('APP_DECIMAL_POINT','2');

然后你可以使用:

$number=1000000;
$amount = number_format($number,DECIMAL_POINT, '.', '');
echo $amount;

在线尝试 3v4l

© www.soinside.com 2019 - 2024. All rights reserved.