Я использую следующий код для отображения прошедшего времени выполнения задачи в строке состояния в моем приложении.
public void DisplayDuration(TimeSpan duration)
{
string formattedDuration;
if (duration.TotalMilliseconds < 2000)
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds);
else if (duration.TotalSeconds < 60)
formattedDuration = string.Format("{0} sec", duration.TotalSeconds);
else
formattedDuration = string.Format("{0} min", duration.TotalMinutes);
this.TimingLabel.Text = formattedDuration;
}
this.TimingLabel - это метка в элементе управления statusStrip в нижнем колонтитуле winform.
Но я получаю совершенно разные результаты в Windows XP и Windows 7
Windows XP:
Windows 7
Почему в Windows 7 единицы появляются раньше времени?
Я проверил региональные настройки, обе машины настроены на США с одинаковым форматированием даты и времени. Убедитесь, что на обеих машинах работает один и тот же код. Это очень странное поведение в очень простом коде.
В качестве продолжения: я внес следующие изменения в свой код, но проблема все еще остается:
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString());