remove WebGUI::Utility::round

This commit is contained in:
Graham Knop 2010-08-24 16:45:38 -05:00
parent ddf0419836
commit fadc4f34ea
13 changed files with 34 additions and 87 deletions

View file

@ -536,7 +536,7 @@ sub setRatings {
my $sum = $db->quickScalar("select sum(rating) $sql", [$self->getId,$category]); my $sum = $db->quickScalar("select sum(rating) $sql", [$self->getId,$category]);
my $count = $db->quickScalar("select count(*) $sql", [$self->getId,$category]); my $count = $db->quickScalar("select count(*) $sql", [$self->getId,$category]);
my $half = round($count/2); my $half = sprintf('%.0f', $count/2);
my $mean = $sum / ($count || 1); my $mean = $sum / ($count || 1);
my $median = $db->quickScalar("select rating $sql order by rating limit $half,1",[$self->getId,$category]); my $median = $db->quickScalar("select rating $sql order by rating limit $half,1",[$self->getId,$category]);

View file

@ -235,7 +235,7 @@ sub formatDuration {
if ($hours[0]) { if ($hours[0]) {
$formattedDuration = join ' ', @hours; $formattedDuration = join ' ', @hours;
} }
my $minutes = round(($duration - $hours)/60)*60; my $minutes = sprintf('%.0f', ($duration - $hours) / 60 ) * 60;
my @minutes = $datetime->secondsToInterval($minutes); my @minutes = $datetime->secondsToInterval($minutes);
if ($minutes[0]) { if ($minutes[0]) {
$formattedDuration .= ', ', if $formattedDuration; $formattedDuration .= ', ', if $formattedDuration;

View file

@ -1500,7 +1500,7 @@ sub recalculateRating {
[$self->getId] [$self->getId]
); );
my $average = round($sum/$count); my $average = sprintf('%.0f', $sum/$count);
$self->update({rating=>$average}); $self->update({rating=>$average});
} }

View file

@ -502,9 +502,9 @@ sub view {
push(@answers,{ push(@answers,{
"answer.form"=>WebGUI::Form::radio($self->session,{name=>"answer",value=>"a".$i}), "answer.form"=>WebGUI::Form::radio($self->session,{name=>"answer",value=>"a".$i}),
"answer.text"=>$self->get('a'.$i), "answer.text"=>$self->get('a'.$i),
"answer.graphWidth"=>round($self->get("graphWidth")*$tally/$totalResponses), "answer.graphWidth"=>sprintf('%.0f', $self->get("graphWidth")*$tally/$totalResponses),
"answer.number"=>$i, "answer.number"=>$i,
"answer.percent"=>round(100*$tally/$totalResponses), "answer.percent"=>sprintf('%0.f', 100*$tally/$totalResponses),
"answer.total"=>($tally+0) "answer.total"=>($tally+0)
}); });
push(@dataset, ($tally+0)); push(@dataset, ($tally+0));

View file

@ -108,7 +108,7 @@ sub _appendStockVars {
} }
$hash->{'stocks.p_change'} = _na($data->{$symbol,"p_change"}); $hash->{'stocks.p_change'} = _na($data->{$symbol,"p_change"});
$hash->{'stocks.volume'} = _na($data->{$symbol,"volume"}); $hash->{'stocks.volume'} = _na($data->{$symbol,"volume"});
$hash->{'stocks.volume.millions'} = _na(WebGUI::Utility::round(($hash->{'stocks.volume'}/1000000),2)); $hash->{'stocks.volume.millions'} = _na(sprintf('%.2f', $hash->{'stocks.volume'}/1000000));
$hash->{'stocks.avg_vol'} = _na($data->{$symbol,"avg_vol"}); $hash->{'stocks.avg_vol'} = _na($data->{$symbol,"avg_vol"});
$hash->{'stocks.bid'} = _na($data->{$symbol,"bid"}); $hash->{'stocks.bid'} = _na($data->{$symbol,"bid"});
$hash->{'stocks.ask'} = _na(Number::Format::format_number($data->{$symbol,"ask"})); $hash->{'stocks.ask'} = _na(Number::Format::format_number($data->{$symbol,"ask"}));

View file

@ -2252,7 +2252,7 @@ END_SQL
&& WebGUI::DateTime->new( $self->session, $row->{endDate} )->toUserTimeZone, && WebGUI::DateTime->new( $self->session, $row->{endDate} )->toUserTimeZone,
response_user_name => ( $row->{userId} eq '1' ) ? $row->{ipAddress} : $row->{username}, response_user_name => ( $row->{userId} eq '1' ) ? $row->{ipAddress} : $row->{username},
response_count_correct => $correctCount, response_count_correct => $correctCount,
response_percent => round( ( $correctCount / $var->{question_count} ) * 100 ), response_percent => sprintf('%.0f', ( $correctCount / $var->{question_count} ) * 100 ),
}; };
} }
$var->{response_loop} = \@responseloop; $var->{response_loop} = \@responseloop;
@ -2302,7 +2302,7 @@ sub www_viewStatisticalOverview {
[$sectionIndex,$questionIndex,$answerIndex]); [$sectionIndex,$questionIndex,$answerIndex]);
my $responsePercent; my $responsePercent;
if ($totalResponses) { if ($totalResponses) {
$responsePercent = round(($numResponses/$totalResponses)*100); $responsePercent = sprintf('%.0f', ($numResponses/$totalResponses)*100);
} else { } else {
$responsePercent = 0; $responsePercent = 0;
} }

View file

@ -251,7 +251,7 @@ sub getAnchorSpacing {
my $numberOfGroups = List::Util::max(map {scalar @$_} @{$self->getDataset}); my $numberOfGroups = List::Util::max(map {scalar @$_} @{$self->getDataset});
my $spacing = round(($self->getChartWidth - ($numberOfGroups-1) * $self->getGroupSpacing) / $numberOfGroups + $self->getGroupSpacing); my $spacing = sprintf('%.0f', ($self->getChartWidth - ($numberOfGroups-1) * $self->getGroupSpacing) / $numberOfGroups + $self->getGroupSpacing);
return { return {
x => $spacing, x => $spacing,
@ -320,7 +320,7 @@ sub getFirstAnchorLocation {
my $self = shift; my $self = shift;
return { return {
x => round($self->getChartOffset->{x} + ($self->getAnchorSpacing->{x} - $self->getGroupSpacing) / 2), x => sprintf('%.0f', $self->getChartOffset->{x} + ($self->getAnchorSpacing->{x} - $self->getGroupSpacing) / 2),
y => $self->getChartOffset->{y} + $self->getChartHeight y => $self->getChartOffset->{y} + $self->getChartHeight
} }
} }

View file

@ -230,7 +230,7 @@ A scalar ref to the array of data that will be broken into columns.
sub _columnar { sub _columnar {
my ($columns, $list) = @_; my ($columns, $list) = @_;
my @entries = @{ $list }; my @entries = @{ $list };
my $fraction = round(@entries/$columns + 0.50); my $fraction = sprintf('%.0f', @entries/$columns + 0.50);
my $output = '<tr><td valign="top">'; my $output = '<tr><td valign="top">';
@entries = sort { $a->{name} cmp $b->{name} } @entries; @entries = sort { $a->{name} cmp $b->{name} } @entries;
my $i = 0; my $i = 0;
@ -369,7 +369,7 @@ sub www_viewHelpIndex {
} }
} }
my $output = '<table width="100%" class="content"><tr><td valign="top">'; my $output = '<table width="100%" class="content"><tr><td valign="top">';
my $halfway = round(@helpIndex / 2); my $halfway = sprintf('%.0f', @helpIndex / 2);
my $i = 0; my $i = 0;
@helpIndex = sort { $a->[2] cmp $b->[2] } @helpIndex; @helpIndex = sort { $a->[2] cmp $b->[2] } @helpIndex;
foreach my $helpEntry (@helpIndex) { foreach my $helpEntry (@helpIndex) {

View file

@ -502,7 +502,7 @@ sub getPageLinks {
if ($limit) { if ($limit) {
my $output; my $output;
my $i = 1; my $i = 1;
my $minPage = $self->getPageNumber - round($limit/2); my $minPage = $self->getPageNumber - sprintf('%.0f', $limit/2);
my $start = ($minPage > 0) ? $minPage : 1; my $start = ($minPage > 0) ? $minPage : 1;
my $maxPage = $start + $limit - 1; my $maxPage = $start + $limit - 1;
my $end = ($maxPage < $self->getPageNumber) ? $self->getPageNumber : $maxPage; my $end = ($maxPage < $self->getPageNumber) ? $self->getPageNumber : $maxPage;

View file

@ -193,7 +193,7 @@ Returns the HTML needed to render the average rating icon.
sub getAverageCommentRatingIcon { sub getAverageCommentRatingIcon {
my $self = shift; my $self = shift;
return q{<img src="}.$self->session->url->extras('form/CommentRating/'.round($self->get('averageCommentRating'),0).'.png').q{" style="vertical-align: middle;" alt="}.$self->get('averageCommentRating').q{" />}; return q{<img src="}.$self->session->url->extras('form/CommentRating/'.sprintf('%.0f', $self->get('averageCommentRating')).'.png').q{" style="vertical-align: middle;" alt="}.$self->get('averageCommentRating').q{" />};
} }

View file

@ -22,7 +22,7 @@ use DateTime::TimeZone;
use Scalar::Util qw( weaken ); use Scalar::Util qw( weaken );
use Tie::IxHash; use Tie::IxHash;
use WebGUI::International; use WebGUI::International;
use WebGUI::Utility qw(round isIn); use WebGUI::Utility qw(isIn);
use Scalar::Util qw(weaken); use Scalar::Util qw(weaken);
@ -815,40 +815,25 @@ The number of seconds in the interval.
=cut =cut
my %intervals = (
31536000 => "703", # years
2592000 => "702", # months
604800 => "701", # weeks
86400 => "700", # days
3600 => "706", # hours
60 => "705", # minutes
);
sub secondsToInterval { sub secondsToInterval {
my $self = shift; my $self = shift;
my $seconds = shift; my $seconds = shift;
my $i18n = WebGUI::International->new($self->session, 'WebGUI'); my $i18n = WebGUI::International->new($self->session, 'WebGUI');
my ($interval, $units); for my $unit (sort { $b <=> $a } keys %intervals) {
if ($seconds >= 31536000) { if ($seconds > $unit) {
$interval = round($seconds/31536000); return (sprintf('%.0f', $seconds / $unit), $i18n->get($intervals{$unit}));
$units = $i18n->get("703"); }
}
elsif ($seconds >= 2592000) {
$interval = round($seconds/2592000);
$units = $i18n->get("702");
}
elsif ($seconds >= 604800) {
$interval = round($seconds/604800);
$units = $i18n->get("701");
}
elsif ($seconds >= 86400) {
$interval = round($seconds/86400);
$units = $i18n->get("700");
} }
elsif ($seconds >= 3600) { return ($seconds, $i18n->get("704")); # seconds
$interval = round($seconds/3600);
$units = $i18n->get("706");
}
elsif ($seconds >= 60) {
$interval = round($seconds/60);
$units = $i18n->get("705");
}
else {
$interval = $seconds;
$units = $i18n->get("704");
}
return ($interval, $units);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -867,17 +852,9 @@ sub secondsToExactInterval {
my $self = shift; my $self = shift;
my $seconds = shift; my $seconds = shift;
my $i18n = WebGUI::International->new($self->session, 'WebGUI'); my $i18n = WebGUI::International->new($self->session, 'WebGUI');
my %units = ( for my $unit (sort { $b <=> $a } keys %intervals) {
31536000 => "703", # years
2592000 => "702", # months
604800 => "701", # weeks
86400 => "700", # days
3600 => "706", # hours
60 => "705", # minutes
);
for my $unit (sort { $b <=> $a } keys %units) {
if ($seconds % $unit == 0) { if ($seconds % $unit == 0) {
return ($seconds / $unit, $i18n->get($units{$unit})); return ($seconds / $unit, $i18n->get($intervals{$unit}));
} }
} }
return ($seconds, $i18n->get("704")); # seconds return ($seconds, $i18n->get("704")); # seconds

View file

@ -23,7 +23,7 @@ use Net::CIDR::Lite;
our @ISA = qw(Exporter); our @ISA = qw(Exporter);
our @EXPORT = qw( our @EXPORT = qw(
&sortHash &isIn &round &sortHash &isIn
); );
@ -39,7 +39,6 @@ This package provides miscellaneous but useful utilities to the WebGUI programme
use WebGUI::Utility; use WebGUI::Utility;
$boolean = isIn($value, @array); $boolean = isIn($value, @array);
$rounded = round($number, $digits);
%hash = sortHash(%hash); %hash = sortHash(%hash);
=head1 METHODS =head1 METHODS
@ -72,29 +71,6 @@ sub isIn {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 round ( float [, significantDigits ] )
Returns an integer after rounding a floating point number.
=head3 float
Any floating point number.
=head3 significantDigits
The number of digits to leave after the decimal point. Defaults to 0.
B<NOTE:> If you set this higher than 0 then you'll get back another floating point number rather than an integer.
=cut
sub round {
my $significantDigits = $_[1] || 0;
return sprintf(('%.'.$significantDigits.'f'), $_[0]);
}
#-------------------------------------------------------------------
=head2 sortHash ( hash ) =head2 sortHash ( hash )
Sorts a hash by its values. Returns a Tie::IxHash. You must assign this to Sorts a hash by its values. Returns a Tie::IxHash. You must assign this to

View file

@ -25,12 +25,6 @@ my $session = WebGUI::Test->session;
# isIn # isIn
ok(WebGUI::Utility::isIn("webgui", qw(cars trucks webgui trains)), 'isIn()'); ok(WebGUI::Utility::isIn("webgui", qw(cars trucks webgui trains)), 'isIn()');
# round
is(WebGUI::Utility::round(47.133984233, 0), 47, 'round() - 0 significant digits');
is(WebGUI::Utility::round(47.133984233, 3), 47.134, 'round() - multiple significant digits');
is(WebGUI::Utility::round(47.6, 0), 48, 'round() - rounds up, too');
{ {
# Just some basic tests for now. # Just some basic tests for now.