Thank you Stuart and Happy Thanksgiving!

Doug

-sent from mobile-

> On Nov 26, 2019, at 11:53 PM, Raeburn, Stuart <raeb...@msu.edu> wrote:
> 
> Doug,
> 
> Borrowing from the fp_equal() subroutine used to compare whether two 
> floating-point numbers are equal, to a particular number of decimal places, 
> found at:
> http://perldoc.perl.org/perlop.html#Floating-point-Arithmetic
> 
> you could test whether the values of $molt4 and $actualM rounded to the 
> desired precision (e.g., 3 decimal places) are the same, and if so, set the 
> $percenterror to 0, otherwise calculate $percenterror, using the method you 
> used in your example.
> 
> $precision = 3;
> if (&roundto($molt4,$precision) eq &roundto($actualM,$precision)) {
>    $percenterror = 0;
> } else {
>    $percenterror=abs($molt4-$actualM)*100/$actualM;
> }
> 
> For any user supplied input you should also validate that the experimental 
> data are reasonable.  Note: you could also set an absolute tolerance for the 
> case where the $percenterror is 0, and use a relative tolerance otherwise.  
> (Note: any tolerance defined within the problem could be overridden within a 
> course).
> 
> if (&roundto($molt4,$precision) eq &roundto($actualM,$precision)) {
>    $temp = 0;
>    $percenterror = 0;
>    $tol = 0.1;
> } else {
>    $tol = '5%';
>    $temp = $molt4-$actualM;
>    $percenterror=abs($molt4-$actualM)*100/$actualM;
> }
> 
> <numericalresponse format="3s" answer="$percenterror" id="11">
>    <responseparam name="tol" type="tolerance" default="$tol" 
> description="Numerical Tolerance" />
>    <responseparam name="sig" type="int_range" default="3,4" 
> description="Significant Digits" />
>    <textline readonly="no"  />
> </numericalresponse>
> 
> Stuart Raeburn
> LON-CAPA Academic Consortium
> 
> ________________________________________
> From: LON-CAPA-users <lon-capa-users-boun...@mail.lon-capa.org> on behalf of 
> Mills, Douglas G <dmi...@illinois.edu>
> Sent: Tuesday, November 26, 2019 4:55 PM
> To: Discussion list for LON-CAPA users
> Cc: Mills, Douglas G
> Subject: [LON-CAPA-users] How Best to Resolve Floating Point Issues?
> 
> Hi All,
> 
> I've run into a situation where the binary representation of base 10 numbers 
> is catching up to us for a very small percentage of our students. To 
> illustrate this I've created a public problem demonstrating the issue. Unlike 
> the problems the students get this one, for the sake of demonstration, walks 
> you through the calculations but uses the exact same numbers that one of our 
> students had to work with resulting in a case where what should be zero is 
> not equal to zero. What's the best way of preventing this from happening? 
> (The source code is open also in case you want to have a look but it's pretty 
> well spelled out in the problem itself for demonstration purposes).
> 
> https://access3.lon-capa.illinois.edu/res/uiuc/dmills/scratchwork/FloatingPointIssueDemo.problem<https://urldefense.com/v3/__https://access3.lon-capa.illinois.edu/res/uiuc/dmills/scratchwork/FloatingPointIssueDemo.problem__;!ioFpBMP7lJU!kYg_ctrV6fkf5-Q0k15HPZw7eDzJHG_oXmJmgLbFYGCVB4UljJ9noqPl_BVJGg$>
> 
> Thanks in advance and, on that topic, Happy Thanksgiving!
> 
> Doug
> 
> DOUGLAS G MILLS
> Director of Instructional Technology
> 
> Department of Chemistry
> 
> University of Illinois at Urbana-Champaign
> Chemistry Annex Box A2
> 601 S. Mathews | M/C 712
> Urbana, IL 61801
> 217.244.5739 | fax: 217.244.8029 | 
> dmi...@illinois.edu<mailto:dmi...@illinois.edu>
> chemistry.illinois.edu<https://urldefense.com/v3/__http://chemistry.illinois.edu__;!ioFpBMP7lJU!kYg_ctrV6fkf5-Q0k15HPZw7eDzJHG_oXmJmgLbFYGCVB4UljJ9noqMWvh09LQ$>
> 
> [/var/folders/kv/f3wpy1cs51521x5grm_qx4tw0000gn/T/com.microsoft.Outlook/WebArchiveCopyPasteTempFiles/P698ojxP4tc7j8gMqgPv+E4KQAAAABJRU5ErkJggg==]<https://urldefense.com/v3/__http://illinois.edu/__;!ioFpBMP7lJU!kYg_ctrV6fkf5-Q0k15HPZw7eDzJHG_oXmJmgLbFYGCVB4UljJ9noqPPexT8GA$>
> 
> Under the Illinois Freedom of Information Act any written communication to or 
> from university employees regarding university business is a public record 
> and may be subject to public disclosure.
> 
> _______________________________________________
> LON-CAPA-users mailing list
> LON-CAPA-users@mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
_______________________________________________
LON-CAPA-users mailing list
LON-CAPA-users@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-users

Reply via email to