The ringing may be caused by finite precision of the tool, but more than likely it is caused by the fact that a Butterworth filter has a damping ratio of .707. A Butterworth filter is maximally flat in the frequency domain, but does not have a linear phase, meaning you will get time domain, ie wave shape distortion.
Octave will use floating point arithmetic. The fixed versus floating point concerns your implementation, if for example you are implementing your algorithm on a fixed point micro-controller.
If you implement your algorithm in fixed point (or integer) format, there are several things to watch for. Three big ones are: 1 - that as the order goes up, the w0 term will get vanishingly small, which makes scaling an issue, 2 - depending on the form you choose (DF1, DF2, DF2 transposed, etc), you can have significant overflow issues. 3- the finite precision of your limited number of bits becomes a problem that causes errors in the frequency domain and / or limit cycle oscillations in the output.
If I recall correctly, you want to implement an 8th order filter, which can be tough. By breaking the filter into cascaded second order sections you can avoid many of the pitfalls. Look at an analog filter cookbook that uses op-amps. The filters are designed as cascaded second order sections and you will want to do something similar. Ideally, you will match the pole-zero co-effecients (yes you will have zero's in the z-domain even if your analog prototype is an all pole filter) that are closest together and then use something like Norm-infinity scaling (which I haven't figured out how to do in Octave).