function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
--
obj {
nam = 'тепло';
pri = -100;
disp = function (s)
p ('тепло ', string.format("%.3f", hot),'/', hotmax);
end;
}
Вышеуказанное при вычитании из 24 чисел по 0.6 - при чистом нуле hot выводит -0.000Далее, всё то же самое только заменена сторочка:
p ('тепло ', string.format("%.3f", round(hot,2)),'/', hotmax);
При достижении чистого нуля выводится всё корректно, т.е. 0.000