3

preg_replace を使用して変換する正規表現が必要です

=> -1121234.56 to (1,121,234.56)
=> -1121 to (1,121.00)
=> 1121 to 1,121.00

今私は使用しています

$number = -12121234.56;
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);

O/P -12,121,234.56

上記の機能も欲しいです。

4

2 に答える 2

4

あなたはただ使うことができますnumber_format()

function myformat($nr)
{
    $nr = number_format($nr, 2);
    return $nr[0] == '-' ? "(" . substr($nr, 1) . ")" : $nr;
}

myformat(-1121234.56);
myformat(-1121);
myformat(1121);

以下も参照してください。number_format()

于 2013-03-29T10:05:05.557 に答える
2

で解くことができpreg_replacenumber_format

$replace = preg_replace(
               '/(-)([\d\.\,]+)/ui',  
               '($2)',                          
               number_format($number,2,'.',',')       
           );

いくつかのテスト:

$number                     $replace
12121234.56                 12,121,234.56
-12121234.56                (12,121,234.56)
-1234567.89                 (1,234,567.89)

これがお役に立てば幸いです。

于 2013-03-29T11:22:13.700 に答える