version 1.47, 2002/05/31 22:19:06
|
version 1.48, 2002/07/17 18:08:39
|
Line 442 sub floor {return (($_[0]-int($_[0]))==
|
Line 442 sub floor {return (($_[0]-int($_[0]))==
|
|
|
sub format { |
sub format { |
my ($value,$fmt)=@_; |
my ($value,$fmt)=@_; |
return sprintf('%.'.$fmt,$value); |
my $dollarmode; |
|
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
|
my $result=sprintf('%.'.$fmt,$value); |
|
if ($dollarmode) {$result=&dollarmode($result);} |
|
return $result; |
} |
} |
|
|
sub prettyprint { |
sub prettyprint { |
my ($value,$fmt)=@_; |
my ($value,$fmt)=@_; |
my $result; |
my $result; |
|
my $dollarmode; |
|
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
if ($fmt) { $value=sprintf('%.'.$fmt,$value); } |
if ($fmt) { $value=sprintf('%.'.$fmt,$value); } |
if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/ ) { |
if ($value =~ /([0-9\.\-\+]+)E([0-9\-\+]+)/ ) { |
my $frac=$1; |
my $frac=$1; |
|
if ($dollarmode) { $frac=&dollarformat($frac); } |
my $exponent=$2; |
my $exponent=$2; |
$exponent=~s/^\+0*//; |
$exponent=~s/^\+0*//; |
if (!$exponent) { return $frac; } |
if ($exponent) { |
if ($external::target eq 'web') { |
if ($external::target eq 'web') { |
$result=$frac.'×10<sup>'.$exponent.'</sup>'; |
$result=$frac.'×10<sup>'.$exponent.'</sup>'; |
} elsif ($external::target eq 'tex') { |
} elsif ($external::target eq 'tex') { |
$result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}'; |
$result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}'; |
|
} else { |
|
$result=$value; |
|
} |
} else { |
} else { |
$result=$value; |
$result=$frac; |
} |
} |
} else { |
} else { |
$result=$value; |
$result=$value; |
|
if ($dollarmode) { $result=&dollarformat($result); } |
} |
} |
return $result; |
return $result; |
} |
} |
|
|
|
sub dollarformat { |
|
my ($number) = @_; |
|
if ($number =~ /\./) { |
|
while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) { |
|
$number = $1.','.$2.$3; |
|
} |
|
} else { |
|
while ($number =~ /([^,]+)([^,][^,][^,])([,0-9]*)$/) { |
|
$number = $1.','.$2.$3; |
|
} |
|
} |
|
if ($external::target eq 'tex') { |
|
$number='\$'.$number; #' stupid emacs |
|
} else { |
|
$number='$'.$number; #' stupid emacs |
|
} |
|
return $number; |
|
} |
|
|
sub map { |
sub map { |
my ($phrase,$dest,$source)=@_; |
my ($phrase,$dest,$source)=@_; |
my @seed = &random_seed_from_phrase($phrase); |
my @seed = &random_seed_from_phrase($phrase); |