Помогите с форматированием чисел, target-c - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть следующее,

int intMilliseconds = rawSplit % 1000;

, который возвращает миллисекунды, оставшиеся со времени, которое я ввел, однако в очень редких случаях возвращает три числа (###) вместо обычных двух (##).

Как мне заставить его всегда возвращать два числа? (##)

Любая помощь была бы велика, спасибо!

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

Похоже, что вы хотите сделать, это обрезать ваши миллисекунды до сотых долей секунды.Вы могли бы сделать что-то вроде этого:

int hundredths= (int)( (float)intMilliseconds / 10.0f ) * 10;

Здесь, например, 934 или 939 миллисекунд будут выдаваться за 93 сотых секунды.странно - на самом деле нет способа «отформатировать» количество миллисекунд (от 0 до 999) как двузначное число.Поскольку ваш формат xx:xx:xx, я предполагаю, что вы хотите отобразить сотые доли секунды.

0 голосов
/ 05 сентября 2011

Это будет трехзначное число в любое время rawSplit - это число между x, 099 и x, 999.Оператор по модулю % дает вам остаток после деления на правый операнд.Если вы выполните 1064 % 1000, результат будет 64.Если вы выполните 1548 % 1000, результат будет 548.

Вы можете изменить информацию, которую вы получаете - выполняя модуль 100, например: 1064 % 100 -> 64 и 1548 % 100 -> 48 - но вы можетене заставляйте это выражение «возвращать» две цифры все время.

Из моего комментария ниже :

Я полагаю, вы могли бы использовать «центсекунды»;просто разделите ваши миллисекунды на десять и отбросьте дробную часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...