我的数量 0003000 ,最后2位是十进制数。我想将 0003000 转换为 00030,00 (在最后2位前面插入一个小数点后的逗号)。 我尝试用substring做这个。我用strlen取字符串的长度然后我做-2,但它忽略了-2。
这是一个例子,为什么会被忽略?
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']-2)))
答案 0 :(得分:2)
-2后面有strlen close括号。尝试:
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum'])-2))
答案 1 :(得分:2)
在这种情况下您不需要strlen()
,请尝试:
substr($this->arrCheck['amountsum'], 0, -2) . ',' . substr($this->arrCheck['amountsum'], -2)
答案 2 :(得分:2)
这是因为你的-2
在strlen函数中而不是在它之外:
strlen($this->arrCheck['amountsum']-2)
应该是:
strlen($this->arrCheck['amountsum'])-2
但总而言之,您不需要使用strlen,因为substr在字符串结尾之前接受一个负数作为字符数:PHP Manual
因此,您上面的整个代码可以替换为:
substr($this->arrCheck['amountsum'], 0, -2)
整个事情可以通过以下方式实现:
substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2)
答案 3 :(得分:2)
您还可以执行以下操作:
echo substr_replace("0003000", ",", -2, 0); // output: 00030,00
echo number_format("0003000" / 100, 2, ',', ''); // output: 30,00
答案 4 :(得分:1)
使用number_format()代替。这很容易使用。
答案 5 :(得分:0)
您可以使用number_format
http://php.net/manual/en/function.number-format.php
或更正您的代码。
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']) -2))
你不能将-2放入strlen()函数
答案 6 :(得分:0)
substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2);