Your example is different from Jim's. You may have missed the crucial line:
zz = 0
I do not disagree with you lightly (or often) but neither do I disagree often with JimB on database theory and its FoxPro implementation. You both keep us aimed in a good direction.
>It's impossible in VFP to create a variable that doesn't have data type assigned to it. If data type is not specified the Logical data type is used as default.
>
>zz = Null
>? TYPE("zz")
>
>
>
>>This behavior is due to the fact that your variable never had a data type assigned to it while hte fields and scattered variables doi have a data type assigned to them. Try this one;
>>
>>
>>zz = 0
>>zz = NULL
>>?str(zz)
>>
>>
>>No error because the data type of zz has been set to numeric so the STR() function works.