0003000のような金額があります。最後の2桁は10進数です。0003000を000030,00に変換したい (最後の2桁の前に小数点コンマを挿入)。私は部分文字列でこれをやろうとしました。strlenを使用して文字列の長さを取得し、-2を作成しますが、-2は無視されます。
ここに例があります、なぜそれが無視されるのですか?
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']-2)))
-2の後にstrlencloseブラケットがあります。試す:
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum'])-2))
この場合は必要ありません。次のことstrlen()
を試してください。
substr($this->arrCheck['amountsum'], 0, -2) . ',' . substr($this->arrCheck['amountsum'], -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)
次のこともできます。
echo substr_replace("0003000", ",", -2, 0); // output: 00030,00
echo number_format("0003000" / 100, 2, ',', ''); // output: 30,00
代わりにnumber_format()を使用してください。それは使いやすいでしょう。
number_formatを使用できます
http://php.net/manual/en/function.number-format.php
またはコードを修正してください。
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']) -2))
strlen()関数に-2を配置することはできません
こちらです ?
substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2);