That said. Why does wrap~ of fx. the signal -0.99 return 0.00999999?
and wrap~ of fx. - 5.99 return 0.0100002?

It seems that the precision is low: if wrap~ outputs the difference with the signal and the greatest integer, not larger than it, for -0.99 it should return 0.01.

BTW, if one wants to get frac part of the signal, then with the current implementation of wrap~ (returning 1 for each non-positive integer)

[wrap~]
|
[wrap~]

should do the work: 0 for any integer and the frac part for any other number.