FIX FOR SERIOUS NUMERICAL ANSWER BUG

0 Likes
(4)

I tried to report this bug to support chat but they insisted I report it as a new feature request because nobody believes it is a bug (sigh).

Replication steps:

  1. Create a classic quiz
  2. Go to "questions"
  3. Select " + New question"
  4. Select "Numerical Answer" question tyupe
  5. Enter some text like "test" in the question box
  6. Click on the first "Exact Answer" dropdown
  7. Change it to "Answer with precision"
  8. Type a precision of "4"
  9. THEN enter an answer of "10.2"

EXPECTED

  1. The answer should be shown as 1.020e+1 or 10.20 (if precision 4 means 4 significant digits)
  2. OR the answer should be 10.2000 (if the precision 4 means 4 decimal places)

ACTUAL

  • The answer is displayed as 10.1900

DISCUSSION

  1. The FIRST bug is it seems to be running in to binary to decimal conversion issues so instead of 10.2, it is using 10.199999999999999...
  2. It then SEEMS to properly limit that to four significant digits (so the 4 digits in 10.19)
  3. But then a SECOND bug appears where for some reason, when the number is small enough that Canvas displays it without scientific notation, it is using the precision to show decimal places, not significant digits. So incorrectly displaying the incorrectly rounded four significant digits of 10.19 to an incorrect four decimal places, to give 10.1900.
  4. Even if the rounding is considered correct, and the four decimal places are considered functioning as designed, then a slightly less incorrect answer should be 10.1999 not 10.1900

For the life of me I don't see why Canvas thinks fixing this has to be a "feature request" but since they insisted, here it is.

9 Comments
KevinLowey
Community Member

As for the 10.19, that might be yet another bug. Because if the real binary to decimal conversion is making it 10.19999999999 then that should ROUND it to four significant digits, so it should be showing that rounded to 10.20 (or if it is using precision of decmal places it should round it to 10.2000). It should never show 10.19 since it should always round up to 10.2

So to recap, there are a BUNCH of bugs in this one example

  • It is properly using 4 significant figures, but incorrectly displaying four decimal places.
  • It is encountering a binary to decimal bug that is changing 10.2 to 10.1999999999...
  • It is not properly rounding to four significant digits, but leaving it as 10.19 instead of 10.20.
  • Putting all this together, the "correct" answer instead of being 10.20 is being shown as 10.1900 (not even the more accurate 10.9999)

 

IanMP
Community Member

Strongly support this effort. Numerical answers should be accurate to the precision requested.

KevinLowey
Community Member

For even more strangeness, the "binary conversion bug" happens at precision "4" and "7".  In both cases they show the correct number of significant digits but do not round the .19999 u to .2 correctly. In addition in both cases they tack on an extra two zeros on the end that shouldn't be there (to make 4 or 7 decimal points, because they don't count the two digits in the "10." at the front, another bug).

HOWEVER

If we use a different precision, like 3, 5, or 6. then it DOES properly round up to 10.2. (But it still tacks on the extra two zeros on the end that shouldn't be there for significant digits).

So even the bug has a bug in that it doesn't work consistently. SOMETIMES it properly rounds up, other times it doesn't.

But hey, according to Canvas this is "functioning as designed".

KristinL
Community Team
Community Team
Status changed to: Open
 
Ron_Bowman
Community Champion

@KevinLowey 

You mention this is in Classic Quizzes.  I wonder if Instructure will even consider fixing this issue because it is in classic quizzes.

have you tried this out in New Quizzes?  It would be interesting to know if the issue is there as well.

 

KevinLowey
Community Member

Thanks for the reply.

I tried in New quizzes. It doesn't have this bug, but does have a different one.

In New quizzes I typed the answer 10.2 and the precision of 4 significant figures, and it correctly indicated that as 10.20. I can then type in precision from 4 to 9 and they are all displayed correctly.

Then I tried to type a precision of "10". As soon as I type "1" Canvas changes that to a "3", probably because "10.4" is already three significant digits so it won't let me type a number smaller than 3. But because it auto-fills the 3 when I type a 1, that ALSO means I cannot type a precision in the 10s.

The only way I could get a precision of 10 was to type "10.20000000" as the answer. I suppose that works ok, but it is confusing.

But generally the new quizzes handles this a lot better. It lets people pick between significant figures and decimal points, and it seems to handle the significant figures properly.

KevinLowey
Community Member

Of course one caveat is that in Classic quizzes, the problem only appeared for certain answers and certain precision levels. I tested that the example I knew of (answer 10.2 precision 4) did not have the problem in New quizzes.  It is possible some other combination of answer and precision might have the problem. But so far I see no evidence of that.

Ron_Bowman
Community Champion

@KevinLowey -

Thanks for the update.  I will have to keep that in mind when I make up my quizzes.  My biggest problem has been screwing up the tolerances allowed - I have mistakenly put in 3 thinking 3% and not 3 when the answer is supposed to be 4 or something like that - makes for a pain grading and telling students sorry Canvas marked your wrong answer correct due to my writing error.

ProductPanda
Instructure
Instructure
Status changed to: Archived
Comments from Instructure

As part of the new Ideas & Themes process, all ideas in Idea Conversations were reviewed by the Product Team. Any Idea that was associated with an identified theme was moved to the new Idea & Themes space. Any Idea that was not part of the move is being marked as Archived. This will preserve the history of the conversations while also letting Community members know that Instructure will not explore the request at this time.