Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.261 and 1.263

version 1.261, 2020/12/04 22:19:19 version 1.263, 2021/10/05 02:41:32
Line 401  sub setup_capa_response { Line 401  sub setup_capa_response {
     if (ref($response)) {      if (ref($response)) {
  $$args_ref{'response'}=dclone($response);   $$args_ref{'response'}=dclone($response);
     } else {      } else {
  $$args_ref{'response'}=dclone([$response]);   $$args_ref{'response'}=dclone(["$response"]);
     }      }
 }  }
   
Line 1066  sub make_numerical_bubbles { Line 1066  sub make_numerical_bubbles {
     }      }
     for ($ind=0;$ind<$number_of_bubbles;$ind++) {      for ($ind=0;$ind<$number_of_bubbles;$ind++) {
  my $exponent = $power-$powers[$#powers-$ind];   my $exponent = $power-$powers[$#powers-$ind];
    $bubble_values[$ind] = $answerfactor*($factor**$exponent);
   
    # If bubble is for correct answer (i.e., exponent = 0), and value
    # of $answerfactor * factor**$exponent is an integer with more than
    # 15 digits, assign $answerfactor itself as bubble value.
    # This prevents a "use fewer digits" issue on 64bit servers
    # when correct answer is >= 1e+16, and when correct bubble is A.
   
  if ($exponent == 0) {   if ($exponent == 0) {
     $bubble_values[$ind] = $answerfactor;      if ($bubble_values[$ind] =~ /^-?(\d+)$/) {
  } else {    if (length($1) > 15) {
     $bubble_values[$ind] = $answerfactor*($factor**$exponent);      $bubble_values[$ind] = $answerfactor;
    }
       }
  }   }
   
  $bubble_display[$ind] = &format_number($bubble_values[$ind],   $bubble_display[$ind] = &format_number($bubble_values[$ind],
        $format,$target,$safeeval);         $format,$target,$safeeval);
     }      }

Removed from v.1.261  
changed lines
  Added in v.1.263


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>