Since the inception of the current web-framework, support for Number-type properties has been missing. In the current WebObject.js (19.1) we find:

Code:
toLocalType : function(val, eType){
    switch(eType){
        case df.tString:
            return val;
        case df.tBool:
            return df.toBool(val);
        case df.tInt:
            return df.toInt(val);
        // case df.tNumber:
        //     //  TODO: Parse number with proper val!
        //     return df.toNumber(val);
        case df.tAdv:
            return val;
        default:
            return val;
    }
},
That TODO has been a long time coming!

What this means is, if I define a property on a custom component and give it type Number (df.tNumber on the client-side), then the value set in that property on the client will always be a string containing a locale-formatted number (so here in Denmark the number 1.2 would become "1,2").

Now, you already wrote the code to do the conversion. It looks something like this:

Code:
df.sys.data.stringToNum(<prop>, this.getWebApp().psDecimalSeparator, this.getWebApp().psThousandsSeparator);
Why not add that into "toLocalType"?