В C++ я хотел бы сделать:setprecision эквивалент в C#?
auto loadingTime = TimeUtilities::getDistance<milliseconds_t>(TimeUtilities::getNow(), startTime);
std::cout << "Reset all accounts and players in " << std::setprecision(3) << loadingTime/1000.f << " seconds!" << std::endl << std::endl;
Однако в C# Я пытался сделать что-то подобное, но это не удалось:
double loadingTime = TimeUtil.GetDistanceInMilliseconds(DateTime.Now, startTime);
Console.WriteLine("Reset all accounts and characters in {0:0.000} seconds!", loadingTime);
Метод GetDistanceInMilliseconds
просто возвращает значение TotalMilliseconds
в TimeSpan
между двумя DateTime
объектов.
Как я могу имитировать такое же поведение в C#?
РЕДАКТИРОВАТЬ: Разделив значение по 1000f
будет работать, если значение loadingTime
составляет менее 1 секунды. Если это больше 1 секунды, отображаемое значение будет неправильным.
Моя цель - отобразить время загрузки от начальной точки до конечной точки (DateTime.Now
- начальная точка, а startTime
- конечная точка) в миллисекундах (до 3 десятичных знаков).
Вы можете показать вывод кода C++ Agains вывод кода C#? – Steve
@Steve Выход такой же, значения нет. В коде C++ он показывает правильное значение, но в коде C# он отображает 7.000 секунд, что должно быть 0,007. Поэтому я добавил/1000f к значению, но это сломало его. –
Выход в миллисекундах, поэтому, если вам нужны секунды, вы должны разделить на 1000. Что было нарушено делением? – Steve