【发布时间】:2017-05-03 14:07:30
【问题描述】:
我认为标题说明了一切,但让我再深入一点。
当用户使用我的应用程序时,我每 5 分钟将十进制小时数存储在数据库中。我在显示某些 5 分钟块的正确时间时遇到了一些麻烦,因为它显示了 4 分钟和 60 秒。每第 3 个 5 分钟块显示一次。
像这样的
4:60
10:00
15:00
19:60
有些甚至有 n:59 而不是 n:00
部分代码为:
let hours = Int(floor(decimalHour))
let mins = Int(floor(decimalHour * 60) % 60)
let secs = Int(floor(decimalHour * 3600) % 60)
有什么建议我可能做错了吗?
【问题讨论】:
-
floor(x) % 60永远不会给你 60(或者它可能会为浮点数提供?在执行%之前尝试转换为int)请显示更多代码。还包括decimalHour对这些测试用例的值。 -
如果可能,最好将持续时间存储为秒(整数)而不是小数小时(浮点)。
-
使用
let mins = Int(floor(decimalHour * 60)) % 60
标签: swift