title: What are the details of the Juniper floating-point scenario/bug wherein the sticky bit is lost?
body: <p>On some Juniper MX routers, floats are not handled correctly:  The sticky bit is lost if it is shifted more that 8 bits to the right (underflow) during a calculation.  Is there a workaround for this?  Are there any known impacts?  Has it been fixed?  Is this an IEEE acceptable option?  Does the issue exist in other systems?</p>
  <p>Example with Math Details (best viewed with fixed width font, and wide screen):</p>
  <pre><code>                                                                                                                                                                          1
  shifts:                                                                                                                                                          12345678901
   4095.05615204245304994401521980762481689453125000000000   = 0x1.ffe1cbff5e3e1p+11 = 0x40affe1cbff5e3e1 =  111111111111.00001110010111111111101011110001111100001
  +   1.0000137123424794882708965815254487097263336181640625 = 0x1.0000e60e10001p+0  = 0x3ff0000170168000 =             1.0000000000000000111001100000111000010000000000000001
                                                                                                                                                                             ^
  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                            1000000000000.000011100110000011100001000000000000000010s
                                                                                                                                                                 LGRS
                                                                                                                                                                 0101 
                                                                                                                     1          2         3         4         5       
  mantissa bit #:                                                                                           1234567890123 4567890123456789012345678901234567890123    
   4096.0561657547959839575923979282379150390625             = 0x1.0000e60e10001p+12 = 0x40b0000e60e10001 = 1000000000000.0000111001100000111000010000000000000001               (on &quot;all&quot; systems/correct)
   4096.056165754795074462890625                             = 0x1.0000e60e10000p+12 = 0x40b0000e60e10000 = 1000000000000.0000111001100000111000010000000000000000               (on Juniper router)
                     ^                                                         ^                        ^                                                        ^
  </code></pre>