使用strlen的substr

3
我有一个数值,如0003000,其中最后两位是小数。我想把 0003000 转换成 00030,00(在最后两位前插入一个小数点)。我尝试使用字符串函数 substring 来实现,先用 strlen 获取长度,再减去 2,但它无法忽略这两位。
以下是示例,为什么会忽略掉这两位呢?
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum']-2)))
7个回答

2
您在-2后面放置了strlen的闭括号。请尝试以下代码:
substr($this->arrCheck['amountsum'],0,(strlen($this->arrCheck['amountsum'])-2))

2

在这种情况下,您不需要使用strlen()函数,可以尝试使用以下代码:

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

2

这是因为你的-2在strlen函数内部而不是外部:

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

应该是:

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

总的来说,您不需要使用strlen函数,因为substr函数接受负数作为字符串末尾之前的字符数:PHP手册 因此,您上面的整个代码可以被替换为:
substr($this->arrCheck['amountsum'], 0, -2)

整个过程可以通过以下方式实现:
substr($this->arrCheck['amountsum'], 0, -2).','.substr($this->arrCheck['amountsum'], -2)

2
您也可以进行以下操作:
echo substr_replace("0003000", ",", -2, 0); // output: 00030,00

echo number_format("0003000" / 100, 2, ',', ''); // output: 30,00

1

0

0

这样做吗?

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接