Modul:Height: Perbedaan antara revisi
Tampilan
Wikisporta (bicara | kontrib) ←Membuat halaman berisi 'local p = {} -- Fungsi pembantu untuk membulatkan angka local function round(val, decimal) if not val then return nil end local exp = 10 ^ (decimal or 0) return math.floor(val * exp + 0.5) / exp end function p.main(frame) local args = frame:getParent().args -- Mendukung parameter m, cm, ft, in local m = tonumber(args.m or args[1]) local cm = tonumber(args.cm) local ft = tonumber(args.ft) local inches = tonumber(args['in'...' Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Wikisporta (bicara | kontrib) k Melindungi "Modul:Height" ([Sunting=Hanya untuk pengurus] (selamanya) [Pindahkan=Hanya untuk pengurus] (selamanya)) Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
(Tidak ada perbedaan)
| |
Revisi terkini sejak 17 Oktober 2026 21.14
Dokumentasi untuk modul ini dapat dibuat di Modul:Height/doc
local p = {}
-- Fungsi pembantu untuk membulatkan angka
local function round(val, decimal)
if not val then return nil end
local exp = 10 ^ (decimal or 0)
return math.floor(val * exp + 0.5) / exp
end
function p.main(frame)
local args = frame:getParent().args
-- Mendukung parameter m, cm, ft, in
local m = tonumber(args.m or args[1])
local cm = tonumber(args.cm)
local ft = tonumber(args.ft)
local inches = tonumber(args['in'] or args.inches)
-- Skenario 1: Jika input dalam Meter (m)
if m then
local cmVal = m * 100
local totalInches = cmVal / 2.54
local calcFt = math.floor(totalInches / 12)
local calcIn = round(totalInches % 12, 0)
if calcIn == 12 then
calcFt = calcFt + 1
calcIn = 0
end
-- Format penulisan meter dengan koma (misal: 1,70 m)
local mStr = tostring(m):gsub("%.", ",")
return string.format('%s m <span style="white-space: nowrap;">(%d ft %d in)</span>', mStr, calcFt, calcIn)
-- Skenario 2: Jika input dalam Centimeter (cm)
elseif cm then
local totalInches = cm / 2.54
local calcFt = math.floor(totalInches / 12)
local calcIn = round(totalInches % 12, 0)
if calcIn == 12 then
calcFt = calcFt + 1
calcIn = 0
end
return string.format('%d cm <span style="white-space: nowrap;">(%d ft %d in)</span>', cm, calcFt, calcIn)
-- Skenario 3: Jika input dalam Feet & Inches (ft & in) -> konversi ke Meter
elseif ft and inches then
local totalInches = (ft * 12) + inches
local cmVal = round(totalInches * 2.54, 0)
local mVal = round(cmVal / 100, 2)
local mStr = tostring(mVal):gsub("%.", ",")
return string.format('%s m <span style="white-space: nowrap;">(%d ft %d in)</span>', mStr, ft, inches)
else
return '<span style="color:red; font-weight:bold;">[Nilai Tinggi Salah]</span>'
end
end
return p