FormattingDecimals
Formatting Decimals: PG Code Snippet
We show how to format decimals for display in PG problems. Note that these are insertions, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.
| PG problem file | Explanation |
|---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl" ); TEXT(beginproblem()); |
Initialization: Standard. |
#
# both ln and log are natural log (base e)
#
$a = 6; # or $a = random(3,7,1);
#
# log base e
#
$b = sprintf("%0.3f", ln($a) ); # or log($a)
$solution1 = Real("$b");
$f = Formula("ln(x)"); # or log(x)
$solution2 = $f->eval(x=>$a);
#
# log base 10
#
$c = sprintf("%0.3f", ln($a)/ln(10) ); # or log($a)/log(10)
$solution3 = Real("$c");
$g = Formula("ln(x)/ln(10)"); # or log(x)/log(10)
$solution4 = $g->eval(x=>$a);
|
Setup:
Use perl's We used the logarithm change of base formula log10(a) = log(a) / log(10) = ln(a) / ln(10) to get a logarithm base 10.
Note: If we load |
Context()->texStrings;
BEGIN_TEXT
Notice the formatting and rounding differences
between \( $solution1 \) and \( $solution2 \).
$BR
$BR
Try entering \( \ln($a), \log($a),
\ln($a)/\ln(10), \log($a)/\log(10) \).
$BR
$BR
\( \ln($a) = \) \{ ans_rule(20) \}
$BR
\( \ln($a) = \) \{ ans_rule(20) \}
$BR
\( \log_{10}($a) = \) \{ ans_rule(20) \}
$BR
\( \log_{10}($a) = \) \{ ans_rule(20) \}
END_TEXT
Context()->normalStrings;
|
Main Text: Notice the difference in decimal formatting when "Show Correct Answers" is checked and you click "Submit Answers". |
ANS( $solution1->cmp() ); ANS( $solution2->cmp() ); ANS( $solution3->cmp() ); ANS( $solution4->cmp() ); ENDDOCUMENT(); |
Answer Evaluation: Standard. |