Вы можете использовать пользовательскую функцию форматирования, например:
string ScaledFormat(string format, double value, double scaleFactor)
{
return(string.Format(format, Math.Round(value * scalefactor, 0)));
}
или, если у вас есть только несколько стилей форматирования, я бы использовал перечисление:
enum CustomFormat { Integer, IntegerX100 };
string ScaledFormat(CustomFormat format, double value)
{
switch(format)
{
case CustomFormat.Integer: return(string.Format("{0}", (int) value);
case CustomFormat.IntegerX100: return(string.Format("{0}", Math.Round(value * 100.0, 0));
}
}
Это означает, что существует определенное количество способов форматирования значения, и фактическое преобразование полностью инкапсулируется в методе, обеспечивая согласованный вывод во всей вашей программе и избегая разбрасывания «магических констант» повсюду. Он также централизует форматирование, так что вы можете легко настроить его в будущем, не находя и не исправляя сотни различных строк. Вызывайте форматирование и сокращайте необходимое тестирование, поскольку вы просто повторно используете небольшой кусок хорошо протестированного кода. И это делает случаи, когда вы форматируете строку, намного проще для чтения / понимания (самодокументируемый код).