Peso por extenso

Estou compartilhando um trecho de código bem simples que eu escrevi para retornar um dado peso por extenso.

Minha função usa o S.I. (Sistema Internacional de Medidas), mas você pode facilmente alterar o código e adaptá-lo para outro sistema de medidas. Também é bem simples traduzi-lo para outra linguagem de programação.

function weight($weight)
{
  $weight = (float) $weight;
  $int = intval($weight);
  $dec = $weight - $int;
  $text = '';
  if ($int > 0)
  {
    $text .= $int . ' ' . ($int > 1 ? 'quilogramas' : 'quilograma');
  }
  if ($dec > 0)
  {
    if ($int > 0)
    {
      $text .= ' e ';
    }
    $dec = round($dec * 1000);
    $text .= $dec . ' ' . ($dec > 1 ? 'gramas' : 'grama');
  }
  return $text;
}

Exemplos de uso:

echo weight(20.2307);
echo weight(1);
echo weight(3);
echo weight(1.001);
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s