c#中的setprecision等价

本文关键字:等价 setprecision 中的 | 更新日期: 2023-09-27 18:03:17

在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只返回两个DateTime对象之间的TimeSpanTotalMilliseconds值。

如何在c#中模仿相同的行为?

EDIT:如果loadingTime值小于1秒,则将值除以1000f将有效。如果超过1秒,显示的值就会出错。

我的目标是显示从开始点到结束点的加载时间(DateTime.Now是开始点,startTime是结束点),以毫秒为单位(最多3个小数点)

c#中的setprecision等价

使用0.###说明符:

7d.ToString("0.###", CultureInfo.InvariantCulture);

返回7

0.007d.ToString("0.###", CultureInfo.InvariantCulture);

返回0.007