Difference between Format and Str?

Is there a difference between the Format and Str functions?

For example, are there any differences between

ThisString = Format (a * b, "###.0")


ThisString = Str (a*b, "###.0")

AFAIK, Format is locale specific whereas Str always uses US locale.

Format will use the correct localized decimal and thousands separators
So in France etc it would use " " and “,” for those separators
Str NEVER does and ALWAY uses , and .