![](/img/trans.png)
[英]What is the best way to bind decimal / double / float values with PDO in PHP?
[英]What is the best way to move decimal point in PHP
我正在做一個可以用信用卡付款的項目。 我有從我得到的“價格”預訂系統,然后它將這個價格發送到商家在線支付頁面。 我的問題是預訂系統以十進制發送價格。 像123.45
。 但是商家只接受這種格式: 12345
。 收到此格式后,它會自動添加小數點。
我需要轉換這個“價格”,不帶小數點。 換句話說,將其向右移動。 最好的功能或解決方案是什么?
現在我正在使用round()
函數並添加兩個零 (00)。 但這種方式只有在我真的使用四舍五入的價格的情況下。
$price = $_POST['price'];
$price = round($price) . '00';
我希望輸出123.45
是12345
。 其他示例123.00
為12300
。
小心......你可能會失去精確度。 我不得不改用 bcmul()
$version=22.0220;
$int1=(int)($version*10000); // $int1 is 220219 (oops)
$int2=(int)(bcmul($version,10000)); // $int2 is 220220 (correct)
<?php
$withoutDecimal = $withDecimal * 100;
?>
對於那些需要更靈活解決方案的人。 例如,比特幣有 8 位小數,美元 - 2
function price_minor_units($dollars, $decimals = 2)
{
return $dollars * (10 ** $decimals);
}
function price_major_units($cents, $decimals = 2){
return $cents / (10 ** $decimals);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.