参考
この記事は、以下の動画を参考にしています。
詳しくは、動画をご覧ください。
.NET 8まで
秒数(など)からTimeSpan
を作る場合、元となるdouble
が誤差を含む可能性があり、TimeSpan
にも誤差が付いてしまう。
var time = TimeSpan.FromSeconds(value: 101.832);
Console.WriteLine(time);
// 00:01:41.8319999
.NET 9
TimeSpan.FromSeconds
には、秒、ミリ秒、マイクロ秒をそれぞれlong
で指定するオーバーロードが用意されており、誤差なくTimeSpan
を作ることができる。
var time = TimeSpan.FromSeconds(seconds: 101, milliseconds: 832);
Console.WriteLine(time);
// 00:01:41.8320000
TimeSpan.FromMinutes
など、他のメソッドにも同様のオーバーロードが用意されている。