C#开发中如何将TimeSpan类型变量转换为取整后的整型秒数
C# TimeSpan转四舍五入秒数实现方法
核心逻辑为提取TimeSpan的TotalSeconds属性(包含小数部分的总秒数双精度值),配合Math类的舍入方法完成转换即可,具体实现如下:
基础实现
默认使用.NET官方Math.Round的银行家舍入规则(四舍六入五取偶):
using System.Diagnostics; // 引入Stopwatch所在命名空间 using System; Stopwatch stopwatch = Stopwatch.StartNew(); // 你的业务代码 stopwatch.Stop(); TimeSpan elapsed = stopwatch.Elapsed; // 四舍五入转整数秒 int roundedSeconds = (int)Math.Round(elapsed.TotalSeconds);
标准四舍五入(0.5秒统一进1)
如果需要符合国内常用的四舍五入规则(五直接入),指定MidpointRounding参数即可:
int roundedSeconds = (int)Math.Round(elapsed.TotalSeconds, MidpointRounding.AwayFromZero);
其他常用舍入场景
- 向上取整(只要存在小数部分就进1秒,适合最小统计单位为1秒的场景):
int ceilingSeconds = (int)Math.Ceiling(elapsed.TotalSeconds); - 向下取整(直接舍去小数部分,仅统计完整秒数):
int floorSeconds = (int)Math.Floor(elapsed.TotalSeconds); // 时间差为非负数时,也可以直接强转:int floorSeconds = (int)elapsed.TotalSeconds;
内容的提问来源于stack exchange,提问作者Rabzy
相关产品推荐
相关产品推荐

