version 1.64, 2003/06/24 20:41:56
|
version 1.69, 2004/02/18 22:49:32
|
Line 490 sub format {
|
Line 490 sub format {
|
my ($value,$fmt)=@_; |
my ($value,$fmt)=@_; |
my $dollarmode; |
my $dollarmode; |
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
|
$fmt=~s/e/E/g; |
my $result=sprintf('%.'.$fmt,$value); |
my $result=sprintf('%.'.$fmt,$value); |
$result=~s/(E[+-]*)0/$1/; |
$result=~s/(E[+-]*)0/$1/; |
if ($dollarmode) {$result=&dollarmode($result);} |
if ($dollarmode) {$result=&dollarmode($result);} |
Line 497 sub format {
|
Line 498 sub format {
|
} |
} |
|
|
sub prettyprint { |
sub prettyprint { |
my ($value,$fmt)=@_; |
my ($value,$fmt,$target)=@_; |
my $result; |
my $result; |
my $dollarmode; |
my $dollarmode; |
|
if (!$target) { $target = $external::target; } |
if ($fmt =~ /^\$(.*)/) { $fmt=$1; $dollarmode=1; } |
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\-\+]+)/i ) { |
my $frac=$1; |
my $frac=$1; |
if ($dollarmode) { $frac=&dollarformat($frac); } |
if ($dollarmode) { $frac=&dollarformat($frac); } |
my $exponent=$2; |
my $exponent=$2; |
$exponent=~s/^\+0*//; |
$exponent=~s/^\+0*//; |
$exponent=~s/^-0*/-/; |
$exponent=~s/^-0*/-/; |
|
$exponent=~s/^-0*/-/; |
|
if ($exponent eq '-') { undef($exponent); } |
if ($exponent) { |
if ($exponent) { |
if ($external::target eq 'web') { |
if ($target eq 'web') { |
$result=$frac.'×10<sup>'.$exponent.'</sup>'; |
$result=$frac.'×10<sup>'.$exponent.'</sup>'; |
} elsif ($external::target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}'; |
$result='\ensuremath{'.$frac.'\times 10^{'.$exponent.'}}'; |
} else { |
} else { |
$result=$value; |
$result=$value; |
Line 521 sub prettyprint {
|
Line 525 sub prettyprint {
|
} |
} |
} else { |
} else { |
$result=$value; |
$result=$value; |
if ($dollarmode) { $result=&dollarformat($result); } |
if ($dollarmode) { $result=&dollarformat($result,$target); } |
} |
} |
return $result; |
return $result; |
} |
} |
|
|
sub dollarformat { |
sub dollarformat { |
my ($number) = @_; |
my ($number,$target) = @_; |
|
if (!$target) { $target = $external::target; } |
if ($number =~ /\./) { |
if ($number =~ /\./) { |
while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) { |
while ($number =~ /([^\.,]+)([^\.,][^\.,][^\.,])([,0-9]*\.[0-9]*$)/) { |
$number = $1.','.$2.$3; |
$number = $1.','.$2.$3; |
Line 537 sub dollarformat {
|
Line 542 sub dollarformat {
|
$number = $1.','.$2.$3; |
$number = $1.','.$2.$3; |
} |
} |
} |
} |
if ($external::target eq 'tex') { |
if ($target eq 'tex') { |
$number='\$'.$number; #' stupid emacs |
$number='\$'.$number; #' stupid emacs |
} else { |
} else { |
$number='$'.$number; #' stupid emacs |
$number='$'.$number; #' stupid emacs |