It shouldn't matter how you write the string. S5E is exactly the
same as S5.0E, because internally, when it comes to comparing
the codes, VDR works only with integer representations of the
strings. So, just like the numbers 5 and 5.0 represent the same
value, S5E and S5.0E represent the same source. The decimal point
followed by a zero is simply optional.
If you don't want trailing zeros you could check for that in cSource::ToString()
and use two different snprintf() formats. Personally I prefer to have only one.
BTW: is there an actual problem occuring with this?