3

0003000のような金額があります。最後の2桁は10進数です。0003000000030,00に変換したい (最後の2桁の前に小数点コンマを挿入)。私は部分文字列でこれをやろうとしました。strlenを使用して文字列の長さを取得し、-2を作成しますが、-2は無視されます。

ここに例があります、なぜそれが無視されるのですか?

substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']-2)))
4

7 に答える 7

2

-2の後にstrlencloseブラケットがあります。試す:

substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum'])-2))
于 2011-08-26T10:55:24.127 に答える
2

この場合は必要ありません。次のことstrlen()を試してください。

substr($this->arrCheck['amountsum'], 0, -2) . ',' . substr($this->arrCheck['amountsum'], -2)
于 2011-08-26T10:56:11.787 に答える
2

それはあなた-2がstrlen関数の外ではなくstrlen関数にいるからです:

strlen($this->arrCheck['amountsum']-2)

する必要があります:

strlen($this->arrCheck['amountsum'])-2

ただし、substrは文字列の終わりの前の文字数として負の数を受け入れるため、全体としてstrlenを使用する必要はありません。PHPマニュアル

したがって、上記のコード全体を次のように置き換えることができます。

substr($this->arrCheck['amountsum'], 0, -2)

そして、すべては次の方法で達成できます。

substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2)
于 2011-08-26T10:58:48.303 に答える
2

次のこともできます。

echo substr_replace("0003000", ",", -2, 0); // output: 00030,00

echo number_format("0003000" / 100, 2, ',', ''); // output: 30,00
于 2011-08-26T11:04:56.197 に答える
1

代わりにnumber_format()を使用してください。それは使いやすいでしょう。

http://www.w3schools.com/php/func_string_number_format.asp

于 2011-08-26T11:01:08.807 に答える
0

number_formatを使用できます

http://php.net/manual/en/function.number-format.php

またはコードを修正してください。

substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']) -2))

strlen()関数に-2を配置することはできません

于 2011-08-26T10:55:48.930 に答える
0

こちらです ?

substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2);
于 2011-08-26T10:58:14.170 に答える