从数字中删除小数并转换为12位数

时间:2012-07-05 09:56:28

标签: php

如何将数字(价格)从1.00转换为000000000100,所有字符串必须12 digits 如果价格100.00,那么如果价格000000010000函数应转换为150.00,则函数应转换为000000015000

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

谢谢你能帮助我。

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

你可以试试这个。

$num=<number with 2 decimal places>;
$strnum=''.intval($num*100);
while(strlen($strnum)<12)
    $strnum='0'.$strnum;

答案 2 :(得分: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”