#!/usr/bin/perl -l

use POSIX ('ceil', 'floor');

sub round { $_[0] > 0 ? int $_[0] + 0.5 : int $_[0] - 0.5 }

# wstaw_dolar() powoduje umieszczenie znaku '$' 
# przed pierwsza cyfra.
#
sub wstaw_dolar { $num = shift; $num =~ s/^(\D*)(.*?)$/$1\$$2/; $num }

# Zignorowanie ulamkow centa.
print wstaw_dolar(int( 1234.5678 * 100) / 100);    #  $1234.56
print wstaw_dolar(int(-1234.5678 * 100) / 100);    # -$1234.56
print wstaw_dolar(int( 5678.1234 * 100) / 100);    #  $5678.12
print wstaw_dolar(int(-5678.1234 * 100) / 100);    # -$5678.12

# Zaokraglenie w dol do jednego centa.
print wstaw_dolar(floor( 1234.5678 * 100) / 100);  #  $1234.56
print wstaw_dolar(floor(-1234.5678 * 100) / 100);  # -$1234.57
print wstaw_dolar(floor( 5678.1234 * 100) / 100);  #  $5678.12
print wstaw_dolar(floor(-5678.1234 * 100) / 100);  # -$5678.13

# Zaokraglenie w gore do jednego centa.
print wstaw_dolar(ceil( 1234.5678 * 100) / 100);   #  $1234.57
print wstaw_dolar(ceil(-1234.5678 * 100) / 100);   # -$1234.56
print wstaw_dolar(ceil( 5678.1234 * 100) / 100);   #  $5678.13
print wstaw_dolar(ceil(-5678.1234 * 100) / 100);   # -$5678.12

# Zaokraglenie do najblizszego centa.
print insert_dollar(round( 1234.5678 * 100) / 100);  #  $1234.57
print insert_dollar(round(-1234.5678 * 100) / 100);  # -$1234.57
print insert_dollar(round( 5678.1234 * 100) / 100);  #  $5678.12
print insert_dollar(round(-5678.1234 * 100) / 100);  # -$5678.12

