student_value
property is the wrong one to change. This is (and should always be) the MathObject that was obtained from parsing the student's answer. It is a mistake to replace this by a string, as other parts of WW may look at this value and expect to have a MathObject (e.g., AnswerHints, or other post-filters).
The field that ends up in the "Entered" column is student_ans
(corresponding to corrections
, just as student_value
corresponds to correct_value
). You certainly can set that during a custom answer checker.
But there is an easier way. The formatStudentAnswer
flag in the Context controls how the entered field will be displayed. If you want it to be "f(2)" rather than "8", set it to parsed
or reduced
, as I did in my example above. The difference between the two is that reduced
will reduce constant expressions, and so will make "f(2+3)" into "f(5)", while parsed
will show the original without any modifications (so would show "f(2+3)").