如何将浮点数格式化为字符串并显示两位小数?

7
NSString *timerend = [[NSString alloc] initWithFormat:@"%.0f:%.0f:%02d", hours, minutes, seconds];

我有一个字符串和一堆浮点数,例如秒数为6.54,它将显示为6.54。 我想要它显示为06.54,有什么办法可以实现吗?非常感谢您的帮助。


说实话,我不太明白你想要什么。你想要什么时间格式?能给我们举个例子吗? :) - Paulo Freitas
2个回答

15

假设您想要的格式是“XX:XX:XX.XX”,则可以使用以下代码:

    NSString *timerend = [[NSString alloc] initWithFormat:@"%02.0f:%02.0f:%05.2f", hours, minutes, seconds];

在格式化浮点数时,小数点前的数字(05)确定整个字符串中最少的总字符数,而不仅仅是小数点前的部分。


不是的。如果你查看注释,%05.2f 确保整个字符串中至少有5个字符。所以,1.23 = 01.23(点号算作1个字符)。如果你输入12222.123,那么整个数字将被呈现出来。试试这个示例,它可以正常工作 :) - Luke

0
一种方法是使用单独的NSString,其内容为0,并将其与timerend连接起来。可能还有其他更好的解决方案。
NSString *startTag = @"0";
// Your string variable. i.e., timerend

NSString *newTime = [startTag stringByAppendingString:timerend];

然而,只有在小时数小于10时才需要添加。


@KingofBliss:我不明白错在哪里。如果程序员需要一个前导的 0 ,那么我认为他应该将其添加到当前字符串中。你认为我哪里理解错了吗?不过,主题和所提供的内容有些令人困惑。 - Mahesh
您的解决方案也会在数字为16的情况下附加0,根据您的方案输出将是016。 - KingofBliss
我添加了一条注释,内容为:“但是,只有在小时数小于10时才需要追加。” - Mahesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接