Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TI Basic Numeric Standard

Are numeric variables following a documented standard on TI calculators ?

I've been really surprised noticing on my TI 83 Premium CE that this test actually returns true (i.e. 1) :

0.1 -> X

0.1 -> Y

0.01 -> Z

X*Y=Z

I was expecting this to fail, assuming my calculator would use something like IEEE 754 standard to represent floating points numbers.

On the other hand, calculating 2^50+3-2^50 returns 0, showing that large integers seems use such a standard : we see here the big number has a limited mantissa.

like image 261
Samuel Avatar asked Sep 26 '22 02:09

Samuel


1 Answers

TI-BASIC's = is a tolerant comparison

Try 1+10^-12=1 on your calculator. Those numbers aren't represented equally (1+10^-12-1 gives 1E-12), but you'll notice the comparison returns true: that's because = has a certain amount of tolerance. AFAICT from testing on my calculator, if the numbers are equal when rounded to ten significant digits, = will return true.

Secondarily,

TI-BASIC uses a proprietary BCD float format

TI floats are a BCD format that is nine bytes long, with one byte for sign and auxilliary information and 14 digits (7 bytes) of precision. The ninth byte is used for extra precision so numbers can be rounded properly.

See a source linked to by @doynax here for more information.

like image 150
lirtosiast Avatar answered Oct 16 '22 19:10

lirtosiast