14.1
When I set a `float` variable to, say, 3.1,
why is `printf` printing it as 3.0999999?

14.2 I'm trying to take some square roots, and I've simplified the code down to

main() { printf("%f\n", sqrt(144.)); }but I'm still getting crazy numbers.

14.3
I'm trying to do some simple
trig,
and I am #including `<math.h>`,
but
the linker keeps
complaining
that functions like `sin`
and `cos`
are undefined.

14.4a My floating-point calculations are acting strangely and giving me different answers on different machines.

14.4b I'm sure I've got the trig functions declared correctly, but they're still giving me wrong answers.

14.5 What's a good way to check for ``close enough'' floating-point equality?

14.6 How do I round numbers?

14.7 Why doesn't C have an exponentiation operator?

14.8
The predefined constant `M_PI`
seems to be missing from
my machine's copy of
`<math.h>`.

14.9 How do I set variables to, or test for IEEE NaN (``Not a Number'') and other special values?

14.10 How can I handle floating-point exceptions gracefully?

14.11 What's a good way to implement complex numbers in C?

14.12 I'm looking for some code to do:

Fast Fourier Transforms (FFT's)

matrix arithmetic (multiplication, inversion, etc.)

complex arithmetic

14.13 I'm having trouble with a Turbo C program which crashes and says something like ``floating point formats not linked.''