我有一個 double 值,這是我需要將其轉換為 Duration 的小時數。假設我有一個這樣的函式原型
Duration parseDurationFromDouble(double d) {
// parse the double
return parsedDuration;
}
和
2.5 由于我的持續時間存盤在 double 中,那么該函式應該回傳,如下所示:
Duration(hours: 2, minutes: 30)
如何在 Dart 中做到這一點?可以直接轉換嗎?或者我應該通過字串插值來完成嗎?
提前致謝。
uj5u.com熱心網友回復:
Duration(minutes: (hoursDuration * 60).toInt());
uj5u.com熱心網友回復:
正如@MuhammadQasim 指出的那樣,您可以通過將原始小時數乘以分鐘數并四舍五入來實作。這有一個問題,如果你關心秒、毫秒或微秒,那么穆罕默德的解決方案會丟失這些,這就是為什么我認為值得發布頻譜的另一端,甚至微秒都沒有四舍五入。
Duration parseDurationFromDouble(double hours) {
return Duration(
microseconds: (hours * Duration.microsecondsPerHour).toInt()
);
}
uj5u.com熱心網友回復:
你可以試試這個。手動將值轉換為小時。分鐘和秒。
void parseDurationFromDouble(double value){
int hours = value.toInt();
int minutes = ((value - hours) * 60).toInt();
int seconds = ((((value - hours) * 60) - minutes) * 60).toInt();
print("$hours:$minutes:$seconds");
Duration(hours: hours, minutes: minutes, seconds: seconds);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391688.html
