四舍五入到最近的便士

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)

ied*_*vil 5

查找这三个函数以供参考:

  1. round() - http://ro1.php.net/manual/en/function.round.php
  2. ceil() - http://ro1.php.net/manual/en/function.ceil.php
  3. number_format() - http://ro1.php.net/manual/en/function.number-format.php

如果你只想围捕,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)