Changeset 13 for stat_functions.php


Ignore:
Timestamp:
Oct 17, 2007, 7:06:49 PM (17 years ago)
Author:
george
Message:

Přidáno: Stránka pro přidání nového měření a implicitní hodnoty pro třídu Measure.
Přidání: Skript pro měření dostupnosti MaNGOS procesu worldd.
Přdáno: Automatické dosazování prefixů jednotek a zaokrouhlování na zadaný počet platných míst.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • stat_functions.php

    r12 r13  
    22
    33$ValueTypes = array('min', 'avg', 'max');
     4$PrefixMultipliers = array(
     5  array('y', 'yocto', pow(10, -24)),
     6  array('z', 'zepto', pow(10, -21)),
     7  array('a', 'atto', pow(10, -18)),
     8  array('f', 'femto', pow(10, -15)),
     9  array('p', 'piko', pow(10, -12)),
     10  array('n', 'nano', pow(10, -9)),
     11  array('u', 'mikro', pow(10, -6)),
     12  array('m', 'mili', pow(10, -3)),
     13  array('', '', pow(10, 0)),
     14  array('k', 'kilo', pow(10, 3)),
     15  array('M', 'mega', pow(10, 6)),
     16  array('G', 'giga', pow(10, 9)),
     17  array('T', 'tera', pow(10, 12)),
     18  array('P', 'peta', pow(10, 15)),
     19  array('E', 'exa', pow(10, 18)),
     20  array('Z', 'zetta', pow(10, 21)),
     21  array('Y', 'yotta', pow(10, 24)), 
     22);
     23
     24function AddPrefixMultipliers($Value, $Unit, $Digits = 4)
     25{
     26  global $PrefixMultipliers;
     27  if($Unit == '') return($Value);
     28  $I = 8;
     29  if($Value > 0) $II = 1;
     30  else if($Value < 0) $II = -1;
     31  else $II = 0;
     32  while((($Value / $PrefixMultipliers[$I + $II][2]) > $II) and (($I + $II) >= 0) and (($I + $II) <= count($PrefixMultipliers))) $I = $I + $II;
     33  $Value = $Value / $PrefixMultipliers[$I][2];
     34 
     35  // Truncate digits count
     36  for($II=2; $II > -1; $II--)
     37  {
     38    if($Value >= pow(10, $II))
     39    { 
     40      if($Digits < ($II + 1)) $RealDigits = $II + 1; else $RealDigits = $Digits;
     41      $Value = round($Value / pow(10, $II - $RealDigits + 1)) * pow(10, $II - $RealDigits + 1);
     42      break;     
     43    }
     44  }
     45   
     46  return($Value.' '.$PrefixMultipliers[$I][0].$Unit);
     47}
    448
    549function GetMicrotime()
Note: See TracChangeset for help on using the changeset viewer.