」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何有效地將十萬千萬系統中的數字轉換為單字?

如何有效地將十萬千萬系統中的數字轉換為單字?

發佈於2024-11-10
瀏覽:512

How Can I Efficiently Convert Numbers to Words in the Lakhs/Crores System?

將十億盧比系統中的數字轉換為單字:一種有效的方法

將數字轉換為單字是程式設計的一項常見任務,特別是在程式設計中財務或會計應用程式。雖然許多現有解決方案涉及具有多個正規表示式和循環的複雜程式碼,但本文提出了一種針對南亞編號系統的特定要求量身定制的簡化方法。

此系統利用「十萬」和「千萬」的概念」 來表示大數。十萬代表十萬,一千萬代表一千萬。與使用逗號作為分隔符號的西方編號系統不同,南亞系統使用空格。 , '一', '二', '三', '四', '五', '六', “七”、“八”、“九”、“十”、“十一”、“十二” 、「十三」、「十四」、「十五」、「十六」、「十七」、「十八」、「十九」 ']; const b = ['', '', '二十', '三十', '四十', '五十', '六十', '七十', '八十', '九十'] ; 函數 inWords (num) { if ((num = num.toString()).length > 9) return '溢出'; n = ('000000000' num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d {2})$/); 如果(!n)返回; 讓str = ''; str = (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] ' ' a[n[1][1]]) '千萬' : ''; str = (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] ' ' a[n[2][1]]) '十萬 ' : ''; str = (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] ' ' a[n[3][1]]) '千 ' : ''; str = (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] ' ' a[n[4][1]]) '百' : ''; str = (n[5] != 0) ? ((str != '') ? ' 和' : '') (a[Number(n[5])] || b[n[5][0]] ' ' a[n[5][1] ]) '僅有的' : ''; 返回字串; } ```` 此程式碼組合了預先定義的陣列“a”和“b”以形成各種數字表示。透過使用正規表示式,它捕獲數字的不同部分(例如,千萬、十萬、千、百和個)並產生適當的單字。重要的是,這種方法比之前提出的解決方案要簡潔得多。 為了示範程式碼的功能,可以使用 HTML/JavaScript 片段:

document.getElementById('number').onkeyup = function () {

const a = ['', 'one ', 'two ', 'three ', 'four ', 'five ', 'six ', 'seven ', 'eight ', 'nine ', 'ten ', 'eleven ', 'twelve ', 'thirteen ', 'fourteen ', 'fifteen ', 'sixteen ', 'seventeen ', 'eighteen ', 'nineteen '];
const b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

function inWords (num) {
  if ((num = num.toString()).length > 9) return 'overflow';
  n = ('000000000'   num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
  if (!n) return;
  let str = '';
  str  = (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]]   ' '   a[n[1][1]])   'crore ' : '';
  str  = (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]]   ' '   a[n[2][1]])   'lakh ' : '';
  str  = (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]]   ' '   a[n[3][1]])   'thousand ' : '';
  str  = (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]]   ' '   a[n[4][1]])   'hundred ' : '';
  str  = (n[5] != 0) ? ((str != '') ? 'and ' : '')   (a[Number(n[5])] || b[n[5][0]]   ' '   a[n[5][1]])   'only ' : '';
  return str;
}
````

This code combines pre-defined arrays 'a' and 'b' to form various numerical representations. By utilizing a regular expression, it captures the different sections of the number (e.g., crores, lakhs, thousands, hundreds, and ones) and generates the appropriate words. Importantly, this approach is much more concise than the earlier solution presented.

To demonstrate the code's functionality, an HTML/JavaScript snippet can be used:
};

document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);
最新教學 更多>
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1和$array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建構一...
    程式設計 發佈於2024-11-14
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-11-14
  • Java 字串雖然是對象,但如何用雙引號初始化?
    Java 字串雖然是對象,但如何用雙引號初始化?
    Java中用“ ”初始化String:一種特殊情況Java的String類,儘管是面向對象的實體,但可以被初始化使用雙引號。這種特性引發了一個問題:在物件導向程式設計的範圍內,這怎麼可能? Java 的獨特方法與Java 中的一切都必須的概念相反作為一個對象,出於性能原因,該語言的設計者選擇保留原始...
    程式設計 發佈於2024-11-14
  • 為什麼我的「不在」檢查元組在 Python 中不起作用?
    為什麼我的「不在」檢查元組在 Python 中不起作用?
    驗證 Python 清單中元素的存在在 Python 中使用清單時,通常需要檢查特定元素是否存在。對於依賴清單中不存在元素的條件分支,通常會使用下列語法:if element not in list: # Code to execute if element is not in the li...
    程式設計 發佈於2024-11-14
  • AtomicInteger 如何提高多執行緒環境中的並發性?
    AtomicInteger 如何提高多執行緒環境中的並發性?
    並發程式設計中的 AtomicIntegerAtomicInteger 是一個 Java 類,支援並發存取底層整數值。了解 AtomicInteger 的實際應用對於優化多執行緒環境中的並發性至關重要。 典型用例AtomicInteger 有兩個主要用途: 原子計數器:它可以用作共享計數器,可以遞增...
    程式設計 發佈於2024-11-14
  • 如何追蹤 Java 的 For-Each 迴圈中的迭代計數?
    如何追蹤 Java 的 For-Each 迴圈中的迭代計數?
    在Java 的For-Each 循環中存取迭代索引在Java 的for-each 循環中,存取當前迭代計數可以證明是有點挑戰性。與傳統的for 迴圈(例如for (int i = 0; i < array.length; i ))不同,for-each 迴圈(例如for (String s: str...
    程式設計 發佈於2024-11-14
  • 如何在 Golang Web 伺服器中串流 MP4 影片?
    如何在 Golang Web 伺服器中串流 MP4 影片?
    GoLang Web 伺服器串流影片GoLang Web 伺服器串流影片GoLang Web 伺服器串流影片問:Golang Web 伺服器設定為服務HTML、CSS、JavaScript 和映像失敗嘗試串流式傳輸MP4 視訊。 if contentType == "video/mp4&q...
    程式設計 發佈於2024-11-14
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-14
  • CSS 中的「display: table-column」實際上做了什麼?
    CSS 中的「display: table-column」實際上做了什麼?
    CSS「display: table-column」該如何運作? 在 HTML 中,表格由行組成,每行含有細胞。 CSS 擴展了這個概念,讓設計者定義特定的行和列佈局。雖然「display: table-row」和「display: table-cell」很簡單,但「display: table-c...
    程式設計 發佈於2024-11-14
  • Babel 6 如何以不同的方式處理預設導出?
    Babel 6 如何以不同的方式處理預設導出?
    重大變更:Babel 6 匯出預設行為隨著 Babel 6 的發布,預設導出的處理方式發生了重大變化。雖然 Babel 之前新增了 module.exports = Exports["default"] 行,但此功能已被刪除。 此修改需要更改模組導入語法。以前,使用舊語法的程式碼...
    程式設計 發佈於2024-11-14
  • 掌握 Next.js 中的 SSR:如何提升 SEO 與使用者體驗
    掌握 Next.js 中的 SSR:如何提升 SEO 與使用者體驗
    SSR(伺服器端渲染)是 Next.js 中產生頁面的另一種方法。在本文中,我想解釋什麼是 SSR、它是如何運作的,以及如何在 Next.js 專案的 Page Router 和 App Router 中實現它。 什麼是SSR? SSR是一種在使用者發出請求後產生靜態頁面(或預先渲...
    程式設計 發佈於2024-11-14
  • 為什麼 PHP 5.2 不允許抽象靜態類別方法?
    為什麼 PHP 5.2 不允許抽象靜態類別方法?
    PHP 5.2 嚴格模式:為什麼不允許抽象靜態類別方法? 在 PHP 5.2 中,啟用嚴格警告可能會觸發熟悉的警告:「靜態函數不應該是抽象的」。此警告源自於 PHP 5.2 中引入的一項更改,該更改不允許抽象靜態類別方法。 原因:歷史監督PHP 5.2 最初缺乏後期靜態綁定,使抽象靜態函數變得無用。...
    程式設計 發佈於2024-11-14
  • 如何為 10 個連續點的每段繪製不同顏色的線?
    如何為 10 個連續點的每段繪製不同顏色的線?
    用不同的顏色繪製一條線問題陳述給定兩個列表,latt和lont,目標是繪製一條線,其中每個清單10個連續點的線段以不同的顏色表示。 解決方案解決方案線段數量有限import numpy as np import matplotlib.pyplot as plt # Generate random c...
    程式設計 發佈於2024-11-14
  • 如何在 MySQL 中根據計數過濾資料而不使用嵌套 SELECT?
    如何在 MySQL 中根據計數過濾資料而不使用嵌套 SELECT?
    MySQL - 在WHERE 子句中使用COUNT(*)使用者在嘗試使用WHERE 子句中的COUNT(*) 函數過濾MySQL 中的資料時遇到了挑戰WHERE 子句。他們尋求一種有效的方法來完成此任務,而不使用巢狀 SELECT 語句,因為它會消耗大量資源。 使用者提供了以下偽代碼來說明他們期望的...
    程式設計 發佈於2024-11-14
  • 如何在 Python 中按名稱存取 SQL 結果列值?
    如何在 Python 中按名稱存取 SQL 結果列值?
    在Python 中按列名稱存取SQL 結果列值處理資料庫中的大量列時,依賴列索引資料來擷取可能會變得很麻煩。本文透過提供一種在 Python 中使用列名稱檢索 SQL 結果列值的方法來解決對更直觀方法的需求。 解決方案:利用 DictCursor Python 的 MySQLdb 模組提供了 Dic...
    程式設計 發佈於2024-11-14

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3