If an attribute template changes type from A to B and uses A's default value, then use B's default value
If an attribute template is of data type A and its default value is the default value of data type A, then if we change the attribute template's data type to B, then the attribute template's default value should become the default value of B.
For example, if the last data type that I set on any attribute or attribute template is string, then if I add a new attribute template, it will already be of type string and will have a default value of empty string. This is great.
However, if the last data type that I set on any attribute or attribute template is numeric, then if I add a new attribute template, it will have that numeric type by default and will have the 0 as its default value. Then I change its data type to string, but 0 still remains as the default value. It is very easy to forget to change the 0 to an empty string (usually we want the empty string, not 0, to be the default value of string attribute templates).
However, if the numeric attribute template had a default value other than 0, then that default value should be preserved when the attribute template is converted to the string type, since non-zero values are not the default value of numeric data types.
Kenneth Barber commented
This post might be a bit confusing to read.
The default value of a data type is the initial value of a new attribute of that data type. It is 0 for numeric data types and the empty string for strings.
The default value of an attribute template is the initial value of an attribute that is based on that attribute template. The default value of an attribute template is customizable.