php - 如何将百分比(例如 25%)简化为简单的陈述(例如 4 中的 1)?

标签 php numbers number-formatting percentage

我需要将一组数字和总计转换为一个简单的语句。

例如,如何通过 PHP 以编程方式将以下内容转换为简单的语句,例如 1 of 101 of 100,甚至舍入一些(例如 100 中的 2 表示 9000,400000)。

生成样本数组:

$arr = array();
for ($i=0; $i < 100; $i++) {
    $n = mt_rand(1,1000);
    $t = mt_rand(10,100000);
    if ($n > $t) continue; // skip!
    $arr[] = array($n,$t);
}
/*
// Generates pairs like:
// Array
// (
//     [0]  => Array ( [0] => 55  [1] => 8774  )
//     [1]  => Array ( [0] => 814 [1] => 11174 )
//     [2]  => Array ( [0] => 255 [1] => 32168 )
//     ...
//     [99] => Array ( [0] => 851 [1] => 24231 )
// )
*/

运行函数并打印简化结果:

foreach ($arr as $a) {
    echo $a[0] . '/' . $a[1] . ' ==> ' . simplifyRatio($a[0],$a[1]) . "\r\n";
}

您能指出我如何实现这一目标的正确方向吗?

这是我正在开发的一个函数的开始,但解决方案却无法解决。

function simplifyRatio($n,$t) {
    $p = $n/$t;
    if ($p > 0.09) return round($n) . ' out of ' . round($t);
    if ($p > 0.009) return round($n) . ' out of ' . round($t);
}

理想情况下,分母应为:1,2,3...10,20,30...100,200,300...1000,2000,3000...10000,20000,30000...100000 (最大)

最佳答案

假设始终是百分比。您可能还想sprintf $outof 在显示之前

function convertPercent($iPercent)
{
  // Assume validation on $iPercent
  $outof = round(100 / $iPercent);
  return "1 out of $outof";
}

关于php - 如何将百分比(例如 25%)简化为简单的陈述(例如 4 中的 1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902544/

相关文章:

php - 计算特定日期(mysql-php)中的特定值的最简单方法是什么?

php - CakePHP - 导航到页面时的空白页面

java - 如何在csv中写入冗长的数字而不转换为科学记数法

PHP不显示数据

javascript - 重复菜单中所选选项和类似所选菜单中的值 Java Script、PHP

javascript - 计算并替换页面中的特殊数字(javascript)

ruby - 如何在 Postgres 中存储小数列表

Java 长数字帮助

javascript - 所有不同 Intl.NumberFormats 的完整列表

javascript - 格式化从电子表格中读取的数字