问题描述
|
在我的应用程序中,我有一个音乐播放器,它可以播放0:30秒的音乐。
但是,在UILabel中,我当前正在显示进度,由于它是浮动的,因此标签显示为14.765。
如果您能告诉我如何显示标签,我将不胜感激
0:14,而不是14.765。
另外,如果您能告诉我如果进度为4秒,我如何显示0:04,我将不胜感激。
解决方法
这可以正常工作:
float time = 14.765;
int mins = time/60;
int secs = time-(mins*60);
NSString * display = [NSString stringWithFormat:@\"%d:%02d\",mins,secs];
结果:
14.765 => 0:14
30.000 => 0:30
59.765 => 0:59
105.999 => 1:45
编辑
另外,“一个班轮”:
float time = 14.765;
NSString * display = [NSString stringWithFormat:@\"%d:%02d\",(int)time/60,(int)time%60];
,首先需要将float
转换为整数,并根据需要舍入。然后可以使用整数除法/
和余数%
运算来提取分钟和秒并产生一个字符串:
float elapsedTime = 14.765;
int wholeSeconds = round(elapsedTime); // or ceil (round up) or floor (round down/truncate)
NSString *time = [NSString stringWithFormat:@\"%02d:%02d\",wholeSeconds/60,wholeSeconds%60];
%02d
是2位零填充整数的格式规范-请在文档中查询printf
以获取全部详细信息。
,//%60 remove the minutes and int removes the floatingpoints
int seconds = (int)(14.765)%60;
// calc minutes
int minutes = (int)(14.765/60);
// validate if seconds have 2 digits
NSString time = [NSString stringWithFormat:@\"%i:%02i\",minutes,seconds];
那应该工作。我目前无法在Win上测试