1b674 Small maths errors in Tcl - The Tcl programming language
Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Small maths errors in Tcl

Posted by admin (Graham Ellis), 18 January 2005
Regular question - "why is my answer slightly wrong".  Answer is usually "because you did an integer divide".  If both parts of a division are integer in Tcl, an integer division is performed, otherwise a floating point division happens.

Sample program:
Code:
puts -nonewline "Please enter a temperature in degrees F "
flush stdout
set temp [gets stdin]

# Incorrect and correct conversions

set wrongc [expr ($temp - 32) / 9 * 5 ]
set rightc [expr ($temp - 32) / 9. * 5 ]

puts "That works out as $wrongc or $rightc degrees C"


And sample results:

Code:
[trainee@buttercup jantcl]$ tcl div
Please enter a temperature in degrees F 212
That works out as 100 or 100.0 degrees C
[trainee@buttercup jantcl]$ tcl div
Please enter a temperature in degrees F 32
That works out as 0 or 0.0 degrees C
[trainee@buttercup jantcl]$ tcl div
Please enter a temperature in degrees F 33
That works out as 0 or 0.555555555556 degrees C
[trainee@buttercup jantcl]$ tcl div
Please enter a temperature in degrees F 33.
That works out as 0.555555555556 or 0.555555555556 degrees C
[trainee@buttercup jantcl]$




This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2013: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho
0