我找不到能解决PHP中整数到字符串转换这一方面的问题,所以...
我有一个文件,其中一个字段包含一些长度为3、4或5位数字
我需要将所有数字标准化为4位。
如果数字是123、1234、12345,那么为了标准化,我在第一个后面添加零,对第二个不做任何操作,在第三个不做四舍五入:round(12345/10)
到目前为止,一切都很好。问题在于文件中包含一些数字,这些数字前导零为023、0234、02346。
我需要保留前导零,我希望输出为0230、0234、0235
我以为我可以强制字段为字符串,如果第一个字符为零,则删除它,对剩余数字进行计算,然后将该数字左移为带前导零的字符串
当我尝试将前导零的数字转换为字符串时,前导零的问题似乎被解释为指示数字为八进制。
strval(0123)> 83
(字符串)0123> 83
我已经通过编辑源数据文件来执行此任务,以用哈希替换任何前导零,以便该字段成为字符串。然后,我的过程变为:如果该字段以#开头,则将其剥离,然后进行计算,然后在前面加上零。当然有更好的解决方案,也许以其他方式读取文件?我正在使用fgetcsv
答案 0 :(得分:-1)
我会在您的数字中添加下一个最大的数字,即1后跟零。
0672-> +1000
获得1672
然后,将其转换为字符串,然后将位置1处的字符再次更改为零。
那是我的方式...我对PHP还是很陌生,所以可能会有更复杂的答案,但是如果所有其他方法都失败了,那就行了。
答案 1 :(得分:-2)
您可以使用以下代码
tensorflow
您可以更改$yourInt = 253;
$intWithZeros = sprintf("%05d", $yourInt); // result 00253
中的值5
的字符数