[英]remove decimal from number and convert to 12 digit
如何从数转换(价格) 1.00
至000000000100
总所有字符串必须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.