ヘッダファイルで #define SET_VALUE "%.3f" と定義しており、
ソースコードには str.Format(SET_VALUE, dValue); という処理が複数個所あるとします。

Format() メソッドで3桁と5桁に変換する分岐処理を行いたいのですが、
1つの方法は #define 定義を2つにし、

#define SET_VALUE3 "%.3f" 
#define SET_VALUE5 "%.5f" 

変換処理の前で、例えば

if(MODE == 1)
{ 
     str.Format(SET_VALUE3, dValue)
}
else
{
    str.Format(SET_VALUE5, dValue)
}

とする方法があると思いますが、複数個所あるため、str.Format(SET_VALUE, dValue) はそのままにして、
#define SET_VALUE の値を "%.3f" , "%.5f" に場合分けし、
特定の条件ならば SET_VALUE"%.3f" 、それ以外ならばSET_VALUE"%.5f" とdefine定義される
分岐の判定処理を作成したいのですが、define の分岐は可能なのでしょうか?

伝わっているかわかりませんがご教示お願いします。