Che*_*ire 1 php forms function rounding
纽布在这里.
我正在尝试构建一个表单,该表单将接收两个金额,然后根据用户输入的数据返回一组简单的计算(子税的金额,子总金额,总金额,等等
我试图构建一个函数并将其固定在最接近的便士的数量上,但它并没有像希望的那样工作.看起来它似乎是"我认为最接近的100美元大关".我已经google了一下,通过堆栈阅读了一些,我变得越来越困惑,因为我尝试了我认为是一个简单的练习.
指导帮助表示赞赏
我的代码:
<?php //0102e_taxes-01.php
//Constant never changes, 100% available everywhere- almost always simple datatypes (T or F, num, string)
//define('THIS_PAGE', $_SERVER['PHP_SELF']);//shows webroot
define('THIS_PAGE', basename($_SERVER['PHP_SELF']));//shows app root - gets name of the file basically
define('TAX_RATE', .095); //current tax rate us => .095 => is 9.5%
//echo THIS_PAGE;// shows this pagefile
//VAR_DUMP - we love it cause we can see everything
function roundNearestHundredUp($number) {
return ceil( $number / 100 ) * 100;
}
if (isset($_POST['submit'])) {//if data, do processing
$purchase01 = (float) $_POST['purchase01'];//float before floats data after
$purchase02 = (float) $_POST['purchase02'];//float before floats data after
$subtotal = $purchase01 + $purchase02;
$amountTotal = TAX_RATE * $amountBeforeTax;
$amountTax = $amountTotal - $subtotal;
echo "<br /><br />";
echo 'First Purchase: $' . $purchase01 . '<br />';//standard
echo 'First Purchase: $' . $purchase02 . '<br />';//standard
echo '<hr />';
echo 'subtotal before tax: $' . roundNearestHundredUp($subtotal) . '<br />';//standard
echo '<hr />';
echo 'Washington state tax: %' . TAX_RATE . '<br />';
echo '<hr />';
echo 'your purchase amount is $' . roundNearestHundredUp($amountTotal) . '<br />';//risky double dollar sign
}else{//show Output
echo
'
<form method="post" action="004_form-taxes.php">
Enter Purchase Amount:
<input type="text" name="purchase01" />
<br />
Enter Purchase Amount:
<input type="text" name="purchase02" />
<br />
<input type="submit" name="submit" />
</form>
';
}//if you dont' need else, do a 'print and die statement' so if else happens you know else happened.
?>
Run Code Online (Sandbox Code Playgroud)
查找这三个函数以供参考:
如果你只想围捕,ceil有点难以使用,你将不得不破解它
$ amount = 14.754
圆将使它14.75 ceil将使它15,你失去了便士,但你这样称呼 - 易于使用黑客
echo ceil($amount*100)/100;
Run Code Online (Sandbox Code Playgroud)
+++以后编辑+++
为了更好的方式做事,你可以稍微玩一下:
echo round(ceil(amount*1000)/1000,2);
Run Code Online (Sandbox Code Playgroud)