如何解决格式化浮点值以获取小数点前的数字
| 在我的应用程序中,我有一个音乐播放器,它可以播放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 举报,一经查实,本站将立刻删除。