--- loncom/homework/default_homework.lcpm 2008/03/06 02:20:05 1.131 +++ loncom/homework/default_homework.lcpm 2008/03/06 14:04:09 1.132 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.131 2008/03/06 02:20:05 www Exp $ +# $Id: default_homework.lcpm,v 1.132 2008/03/06 14:04:09 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -311,7 +311,7 @@ sub caparesponse_check_list { if ($type eq '' || $type eq 'float') { #for numerical problems split off the unit # if ( $responses->[0][-1]=~ /(.*[^\s])\s+([^\s]+)/ ) { - if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.][\$\s\w\^\*\/\(\)\+\-]*)$/ ) { + if ( $responses->[0][-1]=~ /^([\d\.\,\s\$]*(?:(?:[xX\*]10[\^\*]*|[eE]*)[\+\-]*\d*)*(?:^|\S)\d+)([\$\s\w\^\*\/\(\)\+\-]*[^\d\.\s\,][\$\s\w\^\*\/\(\)\+\-]*)$/ ) { $responses->[0][-1]=$1; $unit=&capa_formula_fix($2); &LONCAPA_INTERNAL_DEBUG("Found unit :$unit:"); @@ -322,8 +322,14 @@ sub caparesponse_check_list { if ($unit ne '') { foreach my $response (@$responses) { foreach my $element (@$response) { - $element =~ s/\s//g; - $element .= " $unit"; + $element =~ s/\s//g; + my $appendunit=$unit; + if ($unit=~/\%/) { + $element=$element/100; + $appendunit=~s/\%//; + } + $element .= " $appendunit"; + &LONCAPA_INTERNAL_DEBUG("Made response element :$element:"); } } }