Как использовать родной секундомер с меньшим количеством знаков после запятой?

В Visual Basic 2010, как вы используете встроенную функцию секундомера для меньшей точности / с меньшим количеством десятичных знаков. Я строю секундомер. Он работает довольно хорошо, но имеет низкую частоту кадров (около 5-10 кадров в секунду), потому что секундомер генерирует около 10 знаков после запятой! Вот мой код, чтобы уменьшить количество десятичных разрядов:

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    rounded = Convert.ToDecimal(stopwatch1.Elapsed)
    rounded2 = Decimal.Round(rounded, 2)
    Label1.Text = Convert.ToString(rounded2)
End Sub

Посмотри на это:

Любая помощь?

Спасибо!

2 ответа

Решение

Я думаю, что ваши лучшие варианты - это просто использовать пользовательский формат для значения Elapsed (которое является интервалом времени), например:

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    Label1.Text = stopwatch1.Elapsed.ToString("dd\.hh\:mm\:ss\.fff")
End Sub

где fff необязательное количество миллисекунд, которое вам требуется - просто укажите более или менее fэто как хочешь.

Обратите внимание, что это не будет округлять значение, но в случае секундомера вы не захотите его округлять.

Я думаю, что ваша проблема с таймером, а не с секундомером. Попробуйте установить интервал на более высокое значение.

Также, если вы используете DateTimePicker вместо метки, вы можете легче контролировать формат.

Другие вопросы по тегам