用十进制表示的重量,需要显示为数字,php

时间:2014-05-28 22:47:17

标签: php

我从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

请参见下图:

enter image description here

3 个答案:

答案 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);

谢谢大家!