This module contains data on various types of numbers in ดัตช์.

จำนวน เชิงการนับ เชิงอันดับที่
0 nul
1 een eerste
2 twee tweede
3 drie derde
4 vier vierde
5 vijf vijfde
6 zes zesde
7 zeven zevende
8 acht achtste
9 negen negende
10 tien tiende
11 elf elfde
12 twaalf twaalfde
13 dertien dertiende
14 veertien veertiende
15 vijftien vijftiende
16 zestien zestiende
17 zeventien zeventiende
18 achttien achttiende
19 negentien negentiende
20 twintig twintigste
21 eenentwintig eenentwintigste
22 tweeëntwintig tweeëntwintigste
23 drieëntwintig drieëntwintigste
24 vierentwintig vierentwintigste
25 vijfentwintig vijfentwintigste
26 zesentwintig zesentwintigste
27 zevenentwintig zevenentwintigste
28 achtentwintig achtentwintigste
29 negenentwintig negenentwintigste
30 dertig dertigste
31 eenendertig eenendertigste
32 tweeëndertig tweeëndertigste
33 drieëndertig drieëndertigste
34 vierendertig vierendertigste
35 vijfendertig vijfendertigste
36 zesendertig zesendertigste
37 zevenendertig zevenendertigste
38 achtendertig achtendertigste
39 negenendertig negenendertigste
40 veertig veertigste
41 eenenveertig eenenveertigste
42 tweeënveertig tweeënveertigste
43 drieënveertig drieënveertigste
44 vierenveertig vierenveertigste
45 vijfenveertig vijfenveertigste
46 zesenveertig zesenveertigste
47 zevenenveertig zevenenveertigste
48 achtenveertig achtenveertigste
49 negenenveertig negenenveertigste
50 vijftig vijftigste
51 eenenvijftig eenenvijftigste
52 tweeënvijftig tweeënvijftigste
53 drieënvijftig drieënvijftigste
54 vierenvijftig vierenvijftigste
55 vijfenvijftig vijfenvijftigste
56 zesenvijftig zesenvijftigste
57 zevenenvijftig zevenenvijftigste
58 achtenvijftig achtenvijftigste
59 negenenvijftig negenenvijftigste
60 zestig zestigste
61 eenenzestig eenenzestigste
62 tweeënzestig tweeënzestigste
63 drieënzestig drieënzestigste
64 vierenzestig vierenzestigste
65 vijfenzestig vijfenzestigste
66 zesenzestig zesenzestigste
67 zevenenzestig zevenenzestigste
68 achtenzestig achtenzestigste
69 negenenzestig negenenzestigste
70 zeventig zeventigste
71 eenenzeventig eenenzeventigste
72 tweeënzeventig tweeënzeventigste
73 drieënzeventig drieënzeventigste
74 vierenzeventig vierenzeventigste
75 vijfenzeventig vijfenzeventigste
76 zesenzeventig zesenzeventigste
77 zevenenzeventig zevenenzeventigste
78 achtenzeventig achtenzeventigste
79 negenenzeventig negenenzeventigste
80 tachtig tachtigste
81 eenentachtig eenentachtigste
82 tweeëntachtig tweeëntachtigste
83 drieëntachtig drieëntachtigste
84 vierentachtig vierentachtigste
85 vijfentachtig vijfentachtigste
86 zesentachtig zesentachtigste
87 zevenentachtig zevenentachtigste
88 achtentachtig achtentachtigste
89 negenentachtig negenentachtigste
90 negentig negentigste
91 eenennegentig eenennegentigste
92 tweeënnegentig tweeënnegentigste
93 drieënnegentig drieënnegentigste
94 vierennegentig vierennegentigste
95 vijfennegentig vijfennegentigste
96 zesennegentig zesennegentigste
97 zevenennegentig zevenennegentigste
98 achtennegentig achtennegentigste
99 negenennegentig negenennegentigste
100 honderd honderdste
200 tweehonderd tweehonderdste
300 driehonderd driehonderdste
400 vierhonderd vierhonderdste
500 vijfhonderd vijfhonderdste
600 zeshonderd zeshonderdste
700 zevenhonderd zevenhonderdste
800 achthonderd achthonderdste
900 negenhonderd negenhonderdste
1,000 duizend duizendste
10,000 tienduizend tienduizendste
100,000 honderdduizend honderdduizendste
1,000,000 (106) miljoen miljoenste
1,000,000,000 (109) miljard miljardste
1012 biljoen biljoenste
1015 biljard biljardste
1018 triljoen triljoenste
1021 triljard triljardste

local export = {numbers = {}}

local numbers = export.numbers

numbers[0] = {
	cardinal = "nul",
}

-- other number types:
-- adverbial, multiplier, distributive, collective, fractional

for number, cardinal, ordinal in (function (t)
	local i = 0
	return function()
		i = i + 1
		local v = t[i]
		if type(v) == "table" then
			return i, unpack(v)
		elseif v then
			return i, v
		end
	end
end) {
	{ "een", "eerste" }, "twee", { "drie", "derde" }, "vier", "vijf", "zes",
	"zeven", { "acht", "achtste" }, "negen", "tien", "elf", "twaalf",
} do
	numbers[number] = {
		cardinal = cardinal,
		ordinal = ordinal or cardinal .. "de",
	}
end

for i, stem in ipairs {
	"der", "veer", "vijf", "zes", "zeven", "acht", "negen",
} do
	local number = i + 12
	local cardinal = stem .. "tien"
	numbers[number] = {
		cardinal = cardinal,
		ordinal = cardinal .. "de",
	}
end

local function make_ordinal(cardinal)
	return cardinal .. "ste"
end

local acute = require("Module:string utilities").char(0x0301)
local function remove_acute(word)
	return (word:gsub("é", "e"))
end

for i, stem in ipairs {
	"twin", "der", "veer", "vijf", "zes", "zeven", "tach", "negen",
} do
	local tens = (i + 1) * 10
	local tens_cardinal = stem .. "tig"
	numbers[tens] = {
		cardinal = tens_cardinal,
		ordinal = make_ordinal(tens_cardinal),
	}
	for ones = 1, 9 do
		local ones_cardinal = remove_acute(numbers[ones].cardinal)
		local cardinal = ones_cardinal
			.. (ones_cardinal:find("e$") and "ën" or "en")
			.. tens_cardinal
		numbers[tens + ones] = {
			cardinal = cardinal,
			ordinal = make_ordinal(cardinal),
		}
	end
end

for number, cardinal in pairs {
	[100] = "honderd", [1e3] = "duizend", [1e4] = "tienduizend",
	[1e5] = "honderdduizend", [1e6] = "miljoen", [1e9] = "miljard",
	[1e12] = "biljoen", [1e15] = "biljard", [1e18] = "triljoen",
	[1e21] = "triljard",
} do
	numbers[number] = {
		cardinal = cardinal,
		ordinal = make_ordinal(cardinal),
	}
end
numbers[200] = {
	cardinal = "tweehonderd",
	ordinal = "tweehonderdste"
}
numbers[300] = {
	cardinal = "driehonderd",
	ordinal = "driehonderdste"
}
numbers[400] = {
	cardinal = "vierhonderd",
	ordinal = "vierhonderdste"
}
numbers[500] = {
	cardinal = "vijfhonderd",
	ordinal = "vijfhonderdste"
}
numbers[600] = {
	cardinal = "zeshonderd",
	ordinal = "zeshonderdste"
}
numbers[700] = {
	cardinal = "zevenhonderd",
	ordinal = "zevenhonderdste"
}
numbers[800] = {
	cardinal = "achthonderd",
	ordinal = "achthonderdste"
}
numbers[900] = {
	cardinal = "negenhonderd",
	ordinal = "negenhonderdste"
}
numbers[1000] = {
	cardinal = "duizend",
	ordinal = "duizendste"
}
return export