繁体   English   中英

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

[英]remove decimal from number and convert to 12 digit

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

我实际上需要将此值发送到银行(付款网关)进行处理。

谢谢你能帮我这个忙。

这是执行此操作的功能:

/**
 * 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);
}

你可以试试看

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

对于那些来自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);

输出:string(12)“ 000000015000”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM