我试图根据秒数显示分钟和秒数。
我有:
float seconds = 200;
float mins = seconds / 60.0;
float sec = mins % 60.0;
[timeIndexLabel setText:[NSString stringWithFormat:@"%.2f , %.2f", mins,seconds]];
但是我得到一个错误:类型'float'和'double'到二进制'operator%'的无效操作数
我不明白为什么......有人能给我一块骨头!?
答案 0 :(得分:4)
许多语言只定义%运算符来处理整数操作数。在使用%之前尝试将seconds
和mins
投射到int
(或者首先声明它们int
)。您使用的常量值也需要为int
(使用60而不是60.0)。
答案 1 :(得分:4)
正如其他人所指出的那样,你应该使用整数。但是,似乎没有人发现结果不正确。回过头再看看模运算,你会发现你应该做
int seconds = 200;
int mins = seconds / 60;
int sec = seconds % 60;
注意最后一行seconds % 60
而不是mins % 60
(将返回剩余的分钟数除以60,即每小时的分钟数,与此计算完全无关)
修改的
doh,忘记了整个......:)
答案 2 :(得分:0)
请改用。至少在你的例子中,似乎它们已经足够了(它也会更快更清晰)。
此外,在这种情况下,您将获得3.3333 ...分钟,而不是预期的3分钟。如果需要使用浮点数,可以使用Math.ceil(x)。
答案 3 :(得分:0)
60.0
强制转换为double
尝试:
float seconds = 200;
float mins = seconds / 60;
float sec = mins % 60;
答案 4 :(得分:0)
这样做:
float seconds = 200.5;
float mins = floor(seconds / 60.0);
float sec = seconds - mins * 60.0;