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之间的哪个值
结论:这不可能奏效。我认为这不会是我能说的那么远。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度。这是一个肯定的答案。我不认为这将是我所能说的。当你把某物弄圆时,就其本质而言,你正在使它失去精确性。这意味着,当你逆转这个过程时,你将无法“恢复”准确度。这是一个肯定的答案。我不认为这将是我所能说的。当你围着某物转的时候