PHP天花板和地板精确到100,四舍五入

PHP天花板和地板精确到100,四舍五入,php,Php,我有两个不同的功能天花板和地板,将天花板或地板的给定数量指定的功能。功能如下: function ceiling($number, $significance) { if ($significance != null) { return (is_numeric($number) && is_numeric($significance) ) ? (ceil($number / $significance) * $significance) : $number; } else

我有两个不同的功能天花板和地板,将天花板或地板的给定数量指定的功能。功能如下:

function ceiling($number, $significance) {
if ($significance != null) {
    return (is_numeric($number) && is_numeric($significance) ) ? (ceil($number / $significance) * $significance) : $number;
} else {
    return $number;
}}

function flooring($number, $significance) {
if ($significance != null) {
    return (is_numeric($number) && is_numeric($significance) ) ? (floor($number / $significance) * $significance) : $number;
} else {
    return $number;
}}
使用上述功能,结果如下所示:

echo ceiling(125, 100);     // 200
echo ceiling(2785, 1000);   // 3000

echo flooring(125, 100);    // 100
echo flooring(2785, 1000);  // 2000
问题陈述:

我有一个特别的数字,比如说1234乘以汇率,比如说0.7268。这将生成一个特定的数字,但必须始终使用有效性为100的上限函数将其四舍五入到最接近的100

$rate = 0.7268;
$res = $rate * 1234;
$res = ceiling($res, 100); // result : 900
四舍五入到最接近的100后,上述结果将为900

现在,在代码的另一部分,我可以访问结果900,汇率0.7268,用于四舍五入的值,在我们的例子中是100。是否有可能得到初始值1234作为答案

我猜这一定要使用地板功能,但我无法让它工作

这就是我尝试过的:

$final = $res * (1 / $rate);
$final = flooring($final, 100); // result : 1200 which is wrong.
正确答案是1234


谢谢。

从我的评论来看:我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度

备选方案

如果您有一个用于赚钱的类,那么您可以很容易地拥有一个函数。不经意间:

class Money{
    public $amount;

    function ceiled(){
        return ceiling($this->amount, 100); 
    }
}
这意味着在您的代码中,您仍然可以在任何需要的地方执行诸如将$amount相乘之类的操作,但是每当您需要向用户显示该数字的“假想”版本时,您只需一次性请求即可,即

<?php 
$money = new Money();
$money->amount = 1234;
echo "Current amount is roughly " . $money->ceiled();

// apply exchange rate 
$money->amount *= 0.7268;
echo "New amount is roughly " . $money->ceiled();

从我的评论来看:我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度

备选方案

如果您有一个用于赚钱的类,那么您可以很容易地拥有一个函数。不经意间:

class Money{
    public $amount;

    function ceiled(){
        return ceiling($this->amount, 100); 
    }
}
这意味着在您的代码中,您仍然可以在任何需要的地方执行诸如将$amount相乘之类的操作,但是每当您需要向用户显示该数字的“假想”版本时,您只需一次性请求即可,即

<?php 
$money = new Money();
$money->amount = 1234;
echo "Current amount is roughly " . $money->ceiled();

// apply exchange rate 
$money->amount *= 0.7268;
echo "New amount is roughly " . $money->ceiled();

从我的评论来看:我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度

备选方案

如果您有一个用于赚钱的类,那么您可以很容易地拥有一个函数。不经意间:

class Money{
    public $amount;

    function ceiled(){
        return ceiling($this->amount, 100); 
    }
}
这意味着在您的代码中,您仍然可以在任何需要的地方执行诸如将$amount相乘之类的操作,但是每当您需要向用户显示该数字的“假想”版本时,您只需一次性请求即可,即

<?php 
$money = new Money();
$money->amount = 1234;
echo "Current amount is roughly " . $money->ceiled();

// apply exchange rate 
$money->amount *= 0.7268;
echo "New amount is roughly " . $money->ceiled();

从我的评论来看:我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度

备选方案

如果您有一个用于赚钱的类,那么您可以很容易地拥有一个函数。不经意间:

class Money{
    public $amount;

    function ceiled(){
        return ceiling($this->amount, 100); 
    }
}
这意味着在您的代码中,您仍然可以在任何需要的地方执行诸如将$amount相乘之类的操作,但是每当您需要向用户显示该数字的“假想”版本时,您只需一次性请求即可,即

<?php 
$money = new Money();
$money->amount = 1234;
echo "Current amount is roughly " . $money->ceiled();

// apply exchange rate 
$money->amount *= 0.7268;
echo "New amount is roughly " . $money->ceiled();
首先,您的
地板()
功能与
天花板()
功能没有相反的作用,例如
序列化()
取消序列化()。它在相反的方向做同样的事情

但是,即使您有一个
unciling()
函数,它也无法确定应该返回x00和x99之间的哪个值

结论:这不可能起作用。

首先,您的
地板()
功能与
天花板()
功能没有相反的作用,例如
序列化()
取消序列化()。它在相反的方向做同样的事情

但是,即使您有一个
unciling()
函数,它也无法确定应该返回x00和x99之间的哪个值

结论:这不可能起作用。

首先,您的
地板()
功能与
天花板()
功能没有相反的作用,例如
序列化()
取消序列化()。它在相反的方向做同样的事情

但是,即使您有一个
unciling()
函数,它也无法确定应该返回x00和x99之间的哪个值

结论:这不可能起作用。

首先,您的
地板()
功能与
天花板()
功能没有相反的作用,例如
序列化()
取消序列化()。它在相反的方向做同样的事情

但是,即使您有一个
unciling()
函数,它也无法确定应该返回x00和x99之间的哪个值


结论:这不可能奏效。

我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度。这是一个肯定的答案。我不认为这将是我所能说的。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度。这是一个肯定的答案。我不认为这将是我所能说的。当你围着某物转的时候