Blender now has default functions to help with this (I don’t know in which version this was introduced):
Edit Mode (or Weight Painting) > Menu Mesh > Weights:
Quantize: if you set to 100 steps it will make the lowest number 0.01 before 0.00
Clean: you can trim values and assign a group to vertices with none
Limit Total: Set to 8
and of course Normalize All to resize the values to 0-1 range