李斐莉雪,超级电能,涂磊怒斥咆哮女
记一次在wpf中,在将格式为“dd.hh:mm:ss”字符串转换成timespan时遇到的坑
如果字符串为:dd.hh:mm:ss,转换结果正确。例如:
1 var currentvalue = "2.12:25:45.555"; 2 timespan result; 3 var success = timespan.tryparse(currentvalue, out result); 4 console.write("转换前:"+currentvalue); 5 console.writeline("转换后:"+success + " "+ result.tostring());
以上输出结果:转换前:2.12:25:45.555转换后:true 2.12:25:45.555
分别更改时间戳不同部分,使其超过对应的最大值。
问题:
对于毫秒数,我们知道1s=1000ms。当字符串中毫秒数超过1000时,会是什么情况。
如上测试可以看出,在tostring()时,毫秒位数为7位。超过其范围4位。最后四位是什么含义呢?答案:最后四位为纳秒有效数字位。(1ms=10000纳秒)
图1毫秒部分大于3位小于7位
如图1所示。转换前:2.12:25:45.125555 转换后:true 2.12:25:45.1255550 ,毫秒125
图2毫秒部分为7位
如图2所示。转换前:2.12:25:45.1255555 转换后:true 2.12:25:45.1255555 ,毫秒125
图3毫秒部分大于7位
如图3所示。转换前:2.12:25:45.125555555 转换后:false 转换失败
总结:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论