在 C# 中按以下方式从双精度型转换为十进制是否安全:
int downtimeMinutes = 90;
TimeSpan duration = TimeSpan.FromHours(2d);
decimal calculatedDowntimePercent = duration.TotalMinutes > 0?
(downtimeMinutes / (decimal)duration.TotalMinutes) * 100.0m : 0.0m;
如果答案是肯定的,那么不用大惊小怪,我只会标记为已接受。
一般来说,double
-> decimal
转换不安全,因为decimal
具有较小的范围。
然而,只要TotalMinutes
小于最大值decimal
值*那就没问题了。这是真的,因为TimeSpan.MaxValue.TotalMinutes < (double)decimal.MaxValue
(我相信TimeSpan
uses a long
内部。)
So: yes.
*:(79,228,162,514,264,337,593,543,950,335分钟是宇宙年龄的1.1×10^13倍)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)