Read Numbers to Khmer Words Online:

Convert Numbers to Khmer Words

Khmer Number System:

10 = ten = ដប់
100 = hundred = រយ
1000 = thousand = ពាន់
10000 = Ten thousand = ម៉ឺន
100000 = Hundred thousand = សែន
1000000 = million = លាន
10000000 = ten million = កោដិ
100000000 = Hundred million = ដប់កោដិ
1000000000 = billion = រយកោដិ
10000000000 = ten billion = ពាន់កោដិ
100000000000 = hundred billion = ម៉ឺនកោដិ

To convert data to words in Khmer using JavaScript and HTML, you need to create a script that handles the conversion logic. Here’s a basic example to get you started:

HTML: Create a simple interface with an input field and a button to trigger the conversion.

<!DOCTYPE html>
<html lang="km">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Convert Numbers to Khmer Words</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        input, button {
            padding: 10px;
            margin: 5px 0;
        }
        button {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <h1>Convert Numbers to Khmer Words</h1>
    <input type="text" id="numberInput" placeholder="Enter a number">
    <button onclick="convertToKhmerWords()">Convert</button>
    <p id="result"></p>
</body>
</html>

JavaScript: Write a function that converts numbers to Khmer words. You can use a predefined dictionary for numbers and concatenate them as needed.

<script>
        const khmerDigits = ["សូន្យ", "មួយ", "ពីរ", "បី", "បួន", "ប្រាំ", "ប្រាំមួយ", "ប្រាំពីរ", "ប្រាំបី", "ប្រាំបួន"];
        const khmerTens = ["", "ដប់", "ម្ភៃ", "សាមសិប", "សែសិប", "ហាសិប", "ហុកសិប", "ចិតសិប", "ប៉ែតសិប", "កៅសិប"];
        const khmerHundreds = ["", "មួយរយ", "ពីរយ", "បីរយ", "បួនរយ", "ប្រាំរយ", "ប្រាំមួយរយ", "ប្រាំពីរយ", "ប្រាំបីរយ", "ប្រាំបួនរយ"];
        const khmerThousands = ["", "មួយពាន់", "ពីរពាន់", "បីពាន់", "បួនពាន់", "ប្រាំពាន់", "ប្រាំមួយពាន់", "ប្រាំពីរពាន់", "ប្រាំបីពាន់", "ប្រាំបួនពាន់"];
        const khmerTenThousands = ["", "មួយម៉ឺន", "ពីរម៉ឺន", "បីម៉ឺន", "បួនម៉ឺន", "ប្រាំម៉ឺន", "ប្រាំមួយម៉ឺន", "ប្រាំពីរម៉ឺន", "ប្រាំបីម៉ឺន", "ប្រាំបួនម៉ឺន"];
        const khmerHundredThousands = ["", "មួយសែន", "ពីរសែន", "បីសែន", "បួនសែន", "ប្រាំសែន", "ប្រាំមួយសែន", "ប្រាំពីរសែន", "ប្រាំបីសែន", "ប្រាំបួនសែន"];
        const khmerMillions = ["", "មួយលាន", "ពីរលាន", "បីលាន", "បួនលាន", "ប្រាំលាន", "ប្រាំមួយលាន", "ប្រាំពីរលាន", "ប្រាំបីលាន", "ប្រាំបួនលាន"];
	const khmerBillions = ["", "មួយកោដិ", "ពីរកោដិ", "បីកោដិ", "បួនកោដិ", "ប្រាំកោដិ", "ប្រាំមួយកោដិ", "ប្រាំពីរកោដិ", "ប្រាំបីកោដិ", "ប្រាំបួនកោដិ"];


	function convertToKhmerWords() {
            const number = document.getElementById('numberInput').value;
            const resultElement = document.getElementById('result');

            if (isNaN(number) || number === "") {
                resultElement.innerHTML = "Please enter a valid number";
                return;
            }

            const khmerWords = numberToKhmerWords(Number(number));
            resultElement.innerHTML = khmerWords.trim();
        }

        function numberToKhmerWords(number) {
            if (number == 0) return khmerDigits[0];

            let words = "";
	    let tenthousandBillion = Math.floor(number / 100000000000);
            number %= 100000000000;
	    let thousandBillion = Math.floor(number / 10000000000);
            number %= 10000000000;
            let hundredBillion = Math.floor(number / 1000000000);
            number %= 1000000000;
            let tenBillion = Math.floor(number / 100000000);
            number %= 100000000;
	    let billion = Math.floor(number / 10000000);
            number %= 10000000;
            let million = Math.floor(number / 1000000);
            number %= 1000000;
            let hundredThousand = Math.floor(number / 100000);
            number %= 100000;
            let tenThousand = Math.floor(number / 10000);
            number %= 10000;
            let thousand = Math.floor(number / 1000);
            number %= 1000;
            let hundred = Math.floor(number / 100);
            number %= 100;
            let ten = Math.floor(number / 10);

            let unit = number % 10;
	    if (tenthousandBillion > 0) {
                words += khmerTenThousands[tenthousandBillion] + " ";
            }

	    if (thousandBillion > 0) {
                words += khmerThousands[thousandBillion] + " ";
            }

            if (hundredBillion > 0) {
                words += khmerHundreds[hundredBillion] + " ";
            }

            if (tenBillion > 0) {
                words += khmerTens[tenBillion] + " ";
            }
	    if (billion > 0) {
                words += khmerBillions[billion] + " ";
            }
            if (million > 0) {
                words += khmerMillions[million] + " ";
            }

            if (hundredThousand > 0) {
                words += khmerHundredThousands[hundredThousand] + " ";
            }

            if (tenThousand > 0) {
                words += khmerTenThousands[tenThousand] + " ";
            }

            if (thousand > 0) {
                words += khmerThousands[thousand] + " ";
            }

            if (hundred > 0) {
                words += khmerHundreds[hundred] + " ";
            }

            if (ten > 0) {
                words += khmerTens[ten] + " ";
            }

            if (unit > 0) {
                words += khmerDigits[unit] + " ";
            }

            return words.trim();
        }
    </script>

Here is a complete example:

Copy this code and then paste to Notepad, save as html file (.html extension). You open the html file a browser.

<!DOCTYPE html>
<html lang="km">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Convert Numbers to Khmer Words</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        input, button {
            padding: 10px;
            margin: 5px 0;
        }
        button {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <h1>Convert Numbers to Khmer Words</h1>
    <input type="text" id="numberInput" placeholder="Enter a number">
    <button onclick="convertToKhmerWords()">Convert</button>
    <p id="result"></p>

    <script>
        const khmerDigits = ["សូន្យ", "មួយ", "ពីរ", "បី", "បួន", "ប្រាំ", "ប្រាំមួយ", "ប្រាំពីរ", "ប្រាំបី", "ប្រាំបួន"];
        const khmerTens = ["", "ដប់", "ម្ភៃ", "សាមសិប", "សែសិប", "ហាសិប", "ហុកសិប", "ចិតសិប", "ប៉ែតសិប", "កៅសិប"];
        const khmerHundreds = ["", "មួយរយ", "ពីរយ", "បីរយ", "បួនរយ", "ប្រាំរយ", "ប្រាំមួយរយ", "ប្រាំពីរយ", "ប្រាំបីរយ", "ប្រាំបួនរយ"];
        const khmerThousands = ["", "មួយពាន់", "ពីរពាន់", "បីពាន់", "បួនពាន់", "ប្រាំពាន់", "ប្រាំមួយពាន់", "ប្រាំពីរពាន់", "ប្រាំបីពាន់", "ប្រាំបួនពាន់"];
        const khmerTenThousands = ["", "មួយម៉ឺន", "ពីរម៉ឺន", "បីម៉ឺន", "បួនម៉ឺន", "ប្រាំម៉ឺន", "ប្រាំមួយម៉ឺន", "ប្រាំពីរម៉ឺន", "ប្រាំបីម៉ឺន", "ប្រាំបួនម៉ឺន"];
        const khmerHundredThousands = ["", "មួយសែន", "ពីរសែន", "បីសែន", "បួនសែន", "ប្រាំសែន", "ប្រាំមួយសែន", "ប្រាំពីរសែន", "ប្រាំបីសែន", "ប្រាំបួនសែន"];
        const khmerMillions = ["", "មួយលាន", "ពីរលាន", "បីលាន", "បួនលាន", "ប្រាំលាន", "ប្រាំមួយលាន", "ប្រាំពីរលាន", "ប្រាំបីលាន", "ប្រាំបួនលាន"];
	const khmerBillions = ["", "មួយកោដិ", "ពីរកោដិ", "បីកោដិ", "បួនកោដិ", "ប្រាំកោដិ", "ប្រាំមួយកោដិ", "ប្រាំពីរកោដិ", "ប្រាំបីកោដិ", "ប្រាំបួនកោដិ"];


	function convertToKhmerWords() {
            const number = document.getElementById('numberInput').value;
            const resultElement = document.getElementById('result');

            if (isNaN(number) || number === "") {
                resultElement.innerHTML = "Please enter a valid number";
                return;
            }

            const khmerWords = numberToKhmerWords(Number(number));
            resultElement.innerHTML = khmerWords.trim();
        }

        function numberToKhmerWords(number) {
            if (number == 0) return khmerDigits[0];

            let words = "";
	    let tenthousandBillion = Math.floor(number / 100000000000);
            number %= 100000000000;
	    let thousandBillion = Math.floor(number / 10000000000);
            number %= 10000000000;
            let hundredBillion = Math.floor(number / 1000000000);
            number %= 1000000000;
            let tenBillion = Math.floor(number / 100000000);
            number %= 100000000;
	    let billion = Math.floor(number / 10000000);
            number %= 10000000;
            let million = Math.floor(number / 1000000);
            number %= 1000000;
            let hundredThousand = Math.floor(number / 100000);
            number %= 100000;
            let tenThousand = Math.floor(number / 10000);
            number %= 10000;
            let thousand = Math.floor(number / 1000);
            number %= 1000;
            let hundred = Math.floor(number / 100);
            number %= 100;
            let ten = Math.floor(number / 10);

            let unit = number % 10;
	    if (tenthousandBillion > 0) {
                words += khmerTenThousands[tenthousandBillion] + " ";
            }

	    if (thousandBillion > 0) {
                words += khmerThousands[thousandBillion] + " ";
            }

            if (hundredBillion > 0) {
                words += khmerHundreds[hundredBillion] + " ";
            }

            if (tenBillion > 0) {
                words += khmerTens[tenBillion] + " ";
            }
	    if (billion > 0) {
                words += khmerBillions[billion] + " ";
            }
            if (million > 0) {
                words += khmerMillions[million] + " ";
            }

            if (hundredThousand > 0) {
                words += khmerHundredThousands[hundredThousand] + " ";
            }

            if (tenThousand > 0) {
                words += khmerTenThousands[tenThousand] + " ";
            }

            if (thousand > 0) {
                words += khmerThousands[thousand] + " ";
            }

            if (hundred > 0) {
                words += khmerHundreds[hundred] + " ";
            }

            if (ten > 0) {
                words += khmerTens[ten] + " ";
            }

            if (unit > 0) {
                words += khmerDigits[unit] + " ";
            }

            return words.trim();
        }
    </script>
</body>
</html>

Related Articles: