0

我在 mysql 表中有两种类型的数字(FLOAT 和 BIGINT)。

答:0.002

乙:51443234

我需要替换“。” 在数字中带有“,”,我可以通过 number_format 来完成

foreach ($row as $key => $val) { 
                if (is_numeric($val)) {

                        $row[$key] = number_format($val,'3', ',', '.'); }
                }
            }

新格式是:

答:0,002

乙:51.443.234,000

但我不希望数字 B 中的尾随零,所以我尝试分别格式化 FLOAT 和 BIGINT 值:

foreach ($row as $key => $val) { 
                if (is_numeric($val)) {
                        if (is_float($val)) {
                        $row[$key] = number_format($val,'3', ',', '.'); }
                        else {
                        $row[$key] = number_format($val,'0', ',', '.'); }
                }
            }

但这不起作用。

我不确定问题出在哪里,是否可以在不将值转换为字符串的情况下做到这一点。

(我也不知道转换为字符串有什么缺点..)

你能展示一下正确的方法吗?谢谢你。

4

1 回答 1

1

PHP 是一种松散类型的语言,因此它不知道FLOATSBIGITS。事实上,两者都不0,00251.443.234有效值。

为了进行计算,不要改变任何东西。要显示您的数字,请根据需要格式化它们,即使它们是字符串。

1. <?php
2. $float = 2.25;
3. $bigInt = 4235234;
4.
5. $commaFloat = 2,25;
6. $commaBigInt = 4.235.234;
7. ?>

Parse error: syntax error, unexpected ',' on line 5

http://codepad.org/epIuX8MZ

于 2013-01-16T17:08:46.670 回答