将MB nunber转换为GB或TB

时间:2016-03-11 21:35:45

标签: php

在我的代码中,我从数据库输出一个数字,数字以MB为单位。

例如,我获得了硬盘大小和可用空间。

看起来像这样:

C: CAP 1141919
C: FREE 487205

我要做的是将这些数字转换为TB或GB

输出如下:

C: CAP 1.141919TB
C: FREE 487.205GB

此外,我想将输入减少到两位小数。

C: CAP 1.14TB
C: FREE 487.20GB

我尝试了几个不同的功能,但是大多数人想要以字节为单位的数字,我确实找到了将数字从MB转换为B然后转换为GB的方法,但我遇到了TB的问题,也确定有一种方法可以一步到位。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

function convert($size)
{
     $filesizename = array(" MB", " GB", " TB");
     $size = round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i]; 
     return $size; 
}

 $test = convert(4000);
  echo $test; //produces 3.91 GB

答案 1 :(得分:0)

另一种变体:

function convertMB($mb) {
    $mb = floatval($mb) / 1024.0;
    return ($mb < 1024) ? (number_format($mb, 2).'GB') : (number_format($mb / 1024.0, 2).'TB');
}

答案 2 :(得分:0)

通过number_format函数设置小数点:

$number = number_format($number, 2); // 2 is decimal points