我正在尝试创建一个数学函数(在 PHP 中),它将接受给定数量的公斤,并将它们转换为可读的形式,或者更好的是,返回最适合该数量的单位。输入始终为千克。最好记录。
例如:
5 公斤 = (5) 公斤
0.5 千克 = (500) 克
1000 公斤 = (1) 吨
0.001 千克 = (1) 克
0.0001 千克 = (100) 毫克
我知道有一种方法可以使用 log 或 log10 函数来做到这一点,但我无法弄清楚。
如何做到这一点?
最佳答案
我认为这样的方法应该可行,但我相信有人可以提出更好的解决方案。
function outputWeight($kg)
{
$power = floor(log($kg, 10));
switch($power) {
case 5 :
case 4 :
case 3 : $unit = 'ton';
$power = 3;
break;
case 2 :
case 1 :
case 0 : $unit = 'kilogram';
$power = 0;
break;
case -1 :
case -2 :
case -3 : $unit = 'gram';
$power = -3;
break;
case -4 :
case -5 :
case -6 : $unit = 'milligram';
$power = -6;
break;
default : return 'out of range';
}
return ($kg / pow(10, $power)) . ' ' . $unit;
}
echo outputWeight(0.015) . '<br>';
echo outputWeight(0.15) . '<br>';
echo outputWeight(1.5) . '<br>';
echo outputWeight(15) . '<br>';
echo outputWeight(150) . '<br>';
这个想法是您可以轻松扩展范围。这将输出
15 gram
150 gram
1.5 kilogram
15 kilogram
150 kilogram
我没有彻底测试这段代码!
关于PHP 将任何千克量转换为可读的公制单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66195753/