How does audacity represent audio in memory? If my file has a sample size of 32 bits, how is it possible to have a peak amplitude of 100 dB without exceeding the 32 bits per sample? Will this amplification distort the audio in any way?

As 32-bit floating point numbers.

0 dB is represented by the values +/- 1.0
Floating point numbers may greater or smaller than 1.0

Theoretically there will be a very very very slight loss of precision, but even at +100 dB it is totally insignificant.
For all the gory details, see: Single-precision floating-point format - Wikipedia

If you have a digital level of +100dB, something’s wrong!

With digital 0dBFS (zero decibels is full scale) is the “digital maximum” so digital dB levels are normally negative. Although with floating point there is essentially no maximum.

Digital-to-analog converters, analog-to-digital converters, regular integer WAV files (of any bit depth) and CDs are all hard-limited to 0dB. A 0dB 16-bit file has bigger numbers than a 0dB 8-bit file, but they are scaled to match the bit depth of the DAC at playback time so they will both play at the same volume.

If you have a floating-point file (or floating-point data) that goes over 0dB and you play it back at full digital volume, you’ll clip your DAC.

The 0dB SPL acoustic reference is approximately the quietest sound that humans can hear, so dB SPL levels are normally positive.

If you have a digital level of +100dB, something’s wrong!

Yeah. That can’t be right. You must have the numbers or the system wrong. 0dB digital sound translates roughly to one volt analog. Audio doubles every 6. That puts 100dB as the voltage of a national power transmission grid.

Screen Shot 2018-11-01 at 18.43.04.png