[system] / trunk / webwork / system / courseScripts / PGanswermacros.pl Repository:
ViewVC logotype

Diff of /trunk/webwork/system/courseScripts/PGanswermacros.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 158 Revision 159
1063 ######################################################################### 1063 #########################################################################
1064 1064
1065 #construct the answer evaluator 1065 #construct the answer evaluator
1066 my $answer_evaluator = new AnswerEvaluator; 1066 my $answer_evaluator = new AnswerEvaluator;
1067 $answer_evaluator->{debug} = $num_params{debug}; 1067 $answer_evaluator->{debug} = $num_params{debug};
1068 $answer_evaluator->ans_hash( correct_ans => $correct_num_answer, 1068 $answer_evaluator->ans_hash(
1069 correct_ans => $correctVal,
1069 type => "${mode}_number", 1070 type => "${mode}_number",
1070 tolerance => $num_params{tolerance}, 1071 tolerance => $num_params{tolerance},
1071 tolType => $num_params{tolType}, 1072 tolType => $num_params{tolType},
1072 units => $correct_units, 1073 units => $correct_units,
1073 original_correct_ans => $formattedCorrectAnswer, 1074 original_correct_ans => $formattedCorrectAnswer,
1074 rh_correct_units => \%correct_units, 1075 rh_correct_units => \%correct_units,
1075 answerIsString => $corrAnswerIsString, 1076 answerIsString => $corrAnswerIsString,
1076 ); 1077 );
1077 my ($in, $formattedSubmittedAnswer); 1078 my ($in, $formattedSubmittedAnswer);
1078 $answer_evaluator->install_pre_filter(sub {my $rh_ans = shift; 1079 $answer_evaluator->install_pre_filter(sub {my $rh_ans = shift;
1079 $rh_ans->{original_student_ans} = $rh_ans->{student_ans}; $rh_ans;} 1080 $rh_ans->{original_student_ans} = $rh_ans->{student_ans}; $rh_ans;}
1080 ); 1081 );
2590 2591
2591 if( $format =~ s/#\s*$// ) { # remove trailing zeros in the decimal 2592 if( $format =~ s/#\s*$// ) { # remove trailing zeros in the decimal
2592 $out = sprintf( $format, $number ); 2593 $out = sprintf( $format, $number );
2593 $out =~ s/(\.\d*?)0+$/$1/; 2594 $out =~ s/(\.\d*?)0+$/$1/;
2594 $out =~ s/\.$//; # in case all decimal digits were zero, remove the decimal 2595 $out =~ s/\.$//; # in case all decimal digits were zero, remove the decimal
2596 $out =~ s/e/E/g; # only use capital E's for exponents. Little e is for 2.71828...
2597 } elsif (is_a_number($number) ){
2598 $out = sprintf( $format, $number );
2599 $out =~ s/e/E/g; # only use capital E's for exponents. Little e is for 2.71828...
2600 } else { # number is probably a string representing an arithmetic expression
2601 $out = $number;
2595 } 2602 }
2596 else {
2597 $out = sprintf( $format, $number );
2598 } 2603
2599 $out =~ s/e/E/g; # only use capital E's for exponents. Little e is for 2.71828...
2600 }
2601 else { 2604 } else {
2602 $out = $number; 2605 $out = $number;
2603 $out =~ s/e/E/g; # only use capital E's for exponents. Little e is for 2.71828... 2606 $out =~ s/e/E/g; # only use capital E's for exponents. Little e is for 2.71828...
2604 2607
2605 } 2608 }
2606 return $out; 2609 return $out;

Legend:
Removed from v.158  
changed lines
  Added in v.159

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9