不是保留一位小数,如果大于0.5小时值给出 0.5.如果小于0.5小时则给 .0
时间: 2024-02-21 21:00:39 浏览: 121
如果要将结果四舍五入到 0.5 小时精度,可以使用以下代码:
```csharp
DateTime Time1 = DateTime.Now;
if (this.dp_StartTime.SelectedTime.HasValue)
{
Time1 = this.dp_StartTime.SelectedTime.Value;
}
DateTime Time2 = DateTime.Now;
if (this.dp_EndTime.SelectedTime.HasValue)
{
Time2 = this.dp_EndTime.SelectedTime.Value;
}
double totalHours = (Time2 - Time1).TotalHours;
double roundedHours = Math.Round(totalHours * 2, MidpointRounding.AwayFromZero) / 2;
string displayHours = roundedHours.ToString("0.#");
this.tb_totalTime.Text = displayHours;
```
这里先将时间差转换为小时数,并乘以 2,然后使用 `Math.Round` 方法将结果四舍五入到最接近的 0.5 小时。接着,使用格式化字符串 `"0.#"` 将结果转换为字符串,按照要求显示为整数或一位小数。最后将结果显示在 `tb_totalTime` 文本框中。
注意,这种做法会将 0.25 小时(15 分钟)舍入为 0.5 小时(30 分钟)。如果需要将其舍入为 0 小时,请将 `MidpointRounding.AwayFromZero` 参数改为 `MidpointRounding.ToZero`。
阅读全文