version 1.184, 2005/12/06 10:01:57
|
version 1.187, 2006/02/06 23:02:50
|
Line 191 sub start_numericalresponse {
|
Line 191 sub start_numericalresponse {
|
$safeeval); |
$safeeval); |
for (my $i=0; $i <= $#answers; $i++) { |
for (my $i=0; $i <= $#answers; $i++) { |
my $answer=$answers[$i]; |
my $answer=$answers[$i]; |
my $format; |
if ( scalar(@$tagstack) |
if ($#formats > 0) { |
&& $tagstack->[-1] ne 'numericalresponse') { |
$format=$formats[$i]; |
$answertxt.=$answer.','; |
} else { |
} else { |
$format=$formats[0]; |
my $format; |
|
if ($#formats > 0) { |
|
$format=$formats[$i]; |
|
} else { |
|
$format=$formats[0]; |
|
} |
|
if ($unit=~/\$/) { $format="\$".$format; $unit=~s/\$//g; } |
|
if ($unit=~/\,/) { $format="\,".$format; $unit=~s/\,//g; } |
|
my $formatted=&format_number($answer,$format,$target, |
|
$safeeval); |
|
$answertxt.=$formatted.','; |
} |
} |
if ($unit=~/\$/) { $format="\$".$format; $unit=~s/\$//g; } |
|
if ($unit=~/\,/) { $format="\,".$format; $unit=~s/\,//g; } |
|
my $formatted=&format_number($answer,$format,$target, |
|
$safeeval); |
|
$answertxt.=$formatted.','; |
|
} |
} |
chop $answertxt; |
chop $answertxt; |
if ($target eq 'web') { |
if ($target eq 'web') { |
Line 422 sub end_numericalresponse {
|
Line 427 sub end_numericalresponse {
|
|
|
if ($target eq 'answer') { |
if ($target eq 'answer') { |
$result.=&Apache::response::answer_header($tag); |
$result.=&Apache::response::answer_header($tag); |
if ($Apache::lonhomework::type eq 'exam') { |
if ($tag eq 'numericalresponse' |
|
&& $Apache::lonhomework::type eq 'exam') { |
my ($bubble_values,undef,$correct) = &make_numerical_bubbles($partid, |
my ($bubble_values,undef,$correct) = &make_numerical_bubbles($partid, |
$id,$target,$parstack,$safeeval); |
$id,$target,$parstack,$safeeval); |
$result.=&Apache::response::answer_part($tag,$correct); |
$result.=&Apache::response::answer_part($tag,$correct); |
Line 603 sub format_number {
|
Line 609 sub format_number {
|
my $ans; |
my $ans; |
if ($format eq '') { |
if ($format eq '') { |
#What is the number? (integer,decimal,floating point) |
#What is the number? (integer,decimal,floating point) |
if ($number=~/^(\d*\.?\d*)(E|e)(\d*)$/) { |
if ($number=~/^(\d*\.?\d*)(E|e)[+\-]?(\d*)$/) { |
$format = '3e'; |
$format = '3e'; |
} elsif ($number=~/^(\d*)\.(\d*)$/) { |
} elsif ($number=~/^(\d*)\.(\d*)$/) { |
$format = '4f'; |
$format = '4f'; |