@@ -1074,7 +1074,9 @@ impl Duration { |
|
|
1074 |
1074 |
#[inline] |
1075 |
1075 |
#[rustc_const_unstable(feature = "duration_consts_float", issue = "72440")] |
1076 |
1076 |
pub const fn div_duration_f64(self, rhs: Duration) -> f64 { |
1077 |
|
-self.as_secs_f64() / rhs.as_secs_f64() |
|
1077 |
+let self_nanos = (self.secs as f64) * (NANOS_PER_SEC as f64) + (self.nanos.0 as f64); |
|
1078 |
+let rhs_nanos = (rhs.secs as f64) * (NANOS_PER_SEC as f64) + (rhs.nanos.0 as f64); |
|
1079 |
+ self_nanos / rhs_nanos |
1078 |
1080 |
} |
1079 |
1081 |
|
1080 |
1082 |
/// Divide `Duration` by `Duration` and return `f32`. |
@@ -1093,7 +1095,9 @@ impl Duration { |
|
|
1093 |
1095 |
#[inline] |
1094 |
1096 |
#[rustc_const_unstable(feature = "duration_consts_float", issue = "72440")] |
1095 |
1097 |
pub const fn div_duration_f32(self, rhs: Duration) -> f32 { |
1096 |
|
-self.as_secs_f32() / rhs.as_secs_f32() |
|
1098 |
+let self_nanos = (self.secs as f32) * (NANOS_PER_SEC as f32) + (self.nanos.0 as f32); |
|
1099 |
+let rhs_nanos = (rhs.secs as f32) * (NANOS_PER_SEC as f32) + (rhs.nanos.0 as f32); |
|
1100 |
+ self_nanos / rhs_nanos |
1097 |
1101 |
} |
1098 |
1102 |
} |
1099 |
1103 |
|