-1

如何将数字(价格)从总计转换1.00000000000100 所有字符串12 digits ,如果价格100.00函数应该转换为000000010000相同,如果价格150.00函数应该转换为000000015000

这个值实际上我需要发送到银行(支付网关)进行处理。

谢谢你能帮我解决这个问题。

4

3 回答 3

3

这是一个执行此操作的函数:

/**
 * Format a price according to the bank payment gateway specification.
 *
 * @param $price float The price
 * @return The formatted price
 */
function format_price($price) {
    $price = (int) ($price * 100);
    return str_pad((string) $price, 12, '0', STR_PAD_LEFT);
}
于 2012-07-05T10:06:29.760 回答
1

你可以试试这个。

$num=<number with 2 decimal places>;
$strnum=''.intval($num*100);
while(strlen($strnum)<12)
    $strnum='0'.$strnum;
于 2012-07-05T10:07:58.947 回答
1

从 c dev 来到 php dev 的人的答案:)

$a = 100.00;
printf("a=%012d", $a*100);

输出:a=000000010000

$a = 150.00;
printf("a=%012d", $a*100);

输出:a=000000015000

对于数字转换需要使用sprintf

$a = 150.00;
$b = sprintf("%012d", $a*100);
var_dump($b);

输出:字符串(12)“000000015000”

于 2012-07-05T10:15:46.663 回答