2013-08-16 4 views
1

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

local time = os.time() - LastTime() 
local min = time/60 
min = tostring(min) 
min = string.gsub(min, ".", ":") 
print("You got "..min.." min!") 

Приведенный выше файл возвращает: Вы получили :::: мин!

Все, что я ищу, конвертировать секунд до минут и секунд (больше как 2:23)

+0

Титр не отражает вопрос. – lhf

ответ

1

Вы можете использовать math.modf функцию.

time = os.time() 
--get minutes and franctions of minutes 
minutes, seconds = math.modf(time/60) 
--change fraction of a minute to seconds 
seconds = math.floor((seconds * 60) + 0.5) 

--print everything in a printf-like way :) 
print(string.format("You got %d:%d min!", minutes, seconds)) 
2

min = string.gsub(min, ".", ":")

Этот код заменяет все символы с двоеточием. Это потому, что ваш второй параметр является регулярным выражением, где период соответствует любому символу. Вы могли бы попытаться избежать его с помощью обратной косой черты, т.е.

min = string.gsub(min, "%.", ":")

Однако это все равно даст вам дробное число минут, а не количество секунд. Несмотря на то, что вы говорите, что хотите 3:63, я сомневаюсь, что это так, так как это неверное время.

Try:

print(string.format("%d:%d", math.floor(time/60), time%60))

Смежные вопросы