0

mysqlテーブルには2種類の数値(FLOATとBIGINT)があります。

A:0.002

B:51443234

「。」を置き換える必要があります。数字に「、」を付けて、number_formatで実行できます

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

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

新しい形式は次のとおりです。

A:0,002

B: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 は緩く型付けされた言語であるため、FLOATSBIGINTSについて認識しません。実際、どちら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 に答える