我从xml中抓取的重量为0.800,我想将其转换为000008.这个例子。 003456是345.6公斤显示如何代表更重的重量,有人可以让我知道我可以从这个开始的地方吗?
谢谢!
编辑:我有解决方案,但有人知道为什么它会切断最后一位数字吗?见下文:XML:
<GROSSWEIGHT>345.800</GROSSWEIGHT>
PHP:
$LINE_WEIGHT = ($shipment->COLLO->GROSSWEIGHT*10); // 6 CHARS
sprintf("%06s", $LINE_WEIGHT)
// output 003450
编辑:如果我遵循这个,它的确有效:
echo str_pad(0.800*10, 6, "0", STR_PAD_LEFT);
// output 000008
因为我包含了xml数据:
echo $shipment->COLLO->GROSSWEIGHT; // 345.800
echo str_pad($shipment->COLLO->GROSSWEIGHT*10, 6, "0", STR_PAD_LEFT);
// output 003450
请参见下图:
答案 0 :(得分:2)
使用*10
然后“pad-left”:
echo str_pad(0.800*10, 6, "0", STR_PAD_LEFT); //000008
echo str_pad(345.6*10, 6, "0", STR_PAD_LEFT); //003456
答案 1 :(得分:1)
您首先需要乘以10,然后查看sprintf
,尤其是填充选项。
答案 2 :(得分:0)
我将回答自己的问题,决定如何继续编码。我使用simon建议的sprintf解决方案,因为它似乎更清洁。
XML:
GROSSWEIGHT>0.800</GROSSWEIGHT>
PHP:
$LINE_WEIGHT = (utf8_decode($shipment->COLLO->GROSSWEIGHT)*10); // 6 CHARS
sprintf("%06d", $LINE_WEIGHT);
谢谢大家!