--- loncom/homework/caparesponse/caparesponse.pm 2002/09/30 18:08:09 1.60
+++ loncom/homework/caparesponse/caparesponse.pm 2002/10/04 06:35:28 1.64
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# caparesponse definition
#
-# $Id: caparesponse.pm,v 1.60 2002/09/30 18:08:09 sakharuk Exp $
+# $Id: caparesponse.pm,v 1.64 2002/10/04 06:35:28 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -168,9 +168,9 @@ sub end_numericalresponse {
my $unit=&Apache::lonxml::get_param_var('unit',$parstack,$safeeval);
if ($target eq 'web') {
- $result="
The computer got ";
+ $result="
The correct answer is ";
} elsif ($target eq 'tex') {
- $result='\vskip 0 mm The computer got \\texttt{';
+ $result='\vskip 0 mm The correct answer is \\texttt{';
}
for (my $i=0; $i <= $#answers; $i++) {
my $answer=$answers[$i];
@@ -225,13 +225,23 @@ sub end_numericalresponse {
if ($target eq 'web') {
$result.= '
'.$alphabet[$ind].': '.$ans.' | '; + my $ans; + if ($formats[0] ne '') { + $ans = sprintf('%.'.$formats[0],$bubbles_values[$ind]); } else { - my $ans = sprintf('%.'.'d',$bubbles_values[$ind]); - $result.=''.$alphabet[$ind].': '.$ans.' | '; + my $badans = $bubbles_values[$ind]; + my $format = ''; + #What is the number? (integer,decimal,floating point) + if ($badans=~/^(\d*\.?\d*)(E|e)(\d*)$/) { + $format = 'e'.$2; + } elsif ($badans=~/^(\d*)\.(\d*)$/) { + $format = '4f'; + } elsif ($badans=~/^(\d*)$/) { + $format = 'd'; + } + $ans = sprintf('%.'.$format,$bubbles_values[$ind]); } + $result.=''.$alphabet[$ind].': '.$ans.' | '; } $result.='