格式化浮点值以获取小数点前的数字

| 在我的应用程序中,我有一个音乐播放器,它可以播放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上测试     

要回复问题请先登录注册