As every branch looks like it uses CString::Append why not simplify your code by doing something like:
if (format == style1) str.Append( (value >= 0 ) ? "<" : ">" );
Or even go the conditional free route and use a lookup table:
const *char appendable_strings[][] = { { "<", ">" }, { " ", " " } };
str.Append( appendable_strings[format][value < 0] );
and map format and style onto 0 based integers. The code will be smaller, probably faster and a lot easier to read. And stick it in a function so you've got a better idea what the compiler is whinging about when you do something incorrectly.
Cheers,
Ash
PS: Not sure the array indices are 'round the right way - I don't use arrays that often.
PPS: As another tip forget CString - std::string and std::ostringstream will perform all your formatting needs.
Edit: Caught Native Language Fail Exception
Edit II, the Horror Continues: Slung a conditional in as per Chuck's suggestion below and the fact that I'd missed the original poster wanting a space character appended for style2.