Module:Utils: Difference between revisions
m round() behaviour restored |
m A fix for negative numbers |
||
Line 50: | Line 50: | ||
-- remove non-significant digits | -- remove non-significant digits | ||
local sep_pos = s:find('%.') | local sep_pos = s:find('%.') | ||
if prec >= sep_pos then | local neg = s:find('%-') ~= nil | ||
s = s:sub(1, prec + 1) | if neg then neg = 1 else neg = 0 end | ||
if prec + neg >= sep_pos then | |||
s = s:sub(1, prec + 1 + neg) | |||
else | else | ||
s = s:sub(1, prec) | s = s:sub(1, prec + neg) | ||
while #s < sep_pos - 1 do | while #s < sep_pos - 1 do | ||
s = s .. '0' | s = s .. '0' |