欢迎光临
我们一直在努力

php将带有千分符”,”的字符串格式的数字转换还原为数字(A non well formed numeric value encountered)

当遇到带有千分符格式的数字(应该算是字符串)进行计算会有数字格式不正确的提示 :A non well formed numeric value encountered;下面就进行解决此问题。

php提供了number_format可以快速将数字格式转化成带有千分符的数字,但未提供直接反向转换的的方法,如下是将 number_format 转换

$a = '1231231231.12345678';
$b = number_format( $a, 2, '.', ',' );
echo $b;
// 结果
>> 1,231,231,231.12

下面我们将带有千分符格式的字符串1,231,231,231.12再转化为正常的数字格式

方法一:使用str_replace函数进行字符串替换

$c = '1,231,231,231.12';
$d = (float)str_replace(',', '', $c);
echo $d;
// 结果
>> 1231231231.12

方法二:使用数组函数分割后拼接得到

$c = '1,231,231,231.12';
$e = (float)implode( '', explode( ',', $c ) );
echo $e;
// 结果
>> 1231231231.12  // 结果

完整测试结果

$a = '1231231231.12345678';
$b = number_format( $a, 2, '.', ',' );
echo ">>number_format格式化的结果\n";
echo $b;
$c = '1,231,231,231.12';
$d = (float)str_replace(',', '', $c);
echo "\n>>str_replace后的结果\n";
echo $d;
$e = (float)implode( '', explode( ',', $c ) );
echo "\n>>数组函数分割后拼接后的结果\n";
echo $e;

输出结果为:

>>number_format格式化的结果
1,231,231,231.12
>>str_replace后的结果
1231231231.12
>>数组函数分割后拼接后的结果
1231231231.12
赞(1)
版权归原作者所有,如有侵权请告知。达维营-前端网 » php将带有千分符”,”的字符串格式的数字转换还原为数字(A non well formed numeric value encountered)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址