微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决格式化浮点值以获取小数点前的数字

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。