Numeric Value Convert to Word format in VB.NET
In this article, We can see how to convert numerical value to word format in VB.NET.
In this article, We can see how to convert numerical value to word format in vb.net.
This is the .aspx code:-
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table cellpadding="4" cellspacing="4" width="50%" align="center">
<tr>
<td>
<asp:Label ID="LableEnterValue" runat="server" ForeColor="Red" Text="Enter Your
Numeric Value"
Width="216px"></asp:Label><br />
<asp:TextBox ID="NumericTextBox" runat="server" Width="300px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="Convert" Width="206px"
OnClick="Button1_Click" />
</td>
</tr>
<tr>
<td>
<asp:Label ID="LabelConvertedValue" runat="server" ForeColor="Red" Text="Your
Converted Value"></asp:Label><br />
<asp:TextBox ID="NumericToWordTextBox" runat="server" Width="500px"
</asp:TextBox>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
This is the .vb code:-
Partial Class _Default
Inherits System.Web.UI.Page
Dim unitNum(20) As String
Dim hundredNum(20) As String
Dim thousendNum(20) As String
Dim myNum As String
Dim numGroup As Integer
-----------------------------------------------------------------------------
Public Function NumericToWords(ByVal myNum As String) As String
Dim units As String
Dim numericToWordsOutPut As String
units = numericToWordsOutPut = ""
Dim myNumArray(myNum.Length \ numGroup) As String
Dim index As Int16 = -1
For Count As Int16 = 0 To myNum.Length - numGroup Step numGroup
index += 1
myNumArray(index) = myNum.Substring(Count, numGroup)
Next
For Count As Int16 = 0 To (myNum.Length \ 3) - 1
units = thousendNum(((myNum.Length \ numGroup) - 1) - Count + 1)
numericToWordsOutPut &= CheckUnitOutput(myNumArray(Count)).TrimEnd(" ") & " " & units &
" "
Next
myNumArray = Nothing
Return numericToWordsOutPut
End Function
-----------------------------------------------------------------------------
Private Function CheckUnitOutput(ByVal myNum As String) As String
Dim unitBasedOutput As String = ""
Dim unitDigit As Int16 = Val(myNum.Substring(0, 1))
Dim hundredDigit As Int16 = Val(myNum.Substring(1, 1))
Dim thousendDigit As Int16 = Val(myNum.Substring(2, 1))
If unitDigit >= 1 Then unitBasedOutput &= unitNum(unitDigit) & " hundred "
End If
If Val(myNum.Substring(1, 2)) < 20 Then
unitBasedOutput &= unitNum(Val(myNum.Substring(1, 2)))
End If
If Val(myNum.Substring(1, 2)) >= 20 Then
unitBasedOutput &= hundredNum(hundredDigit) & " " & unitNum(thousendDigit)
End If
Return unitBasedOutput
End Function
------------------------------------------------------------------------------
Private Sub FormatInitialization()
thousendNum(0) = ""
thousendNum(1) = ""
thousendNum(2) = "Thousand"
thousendNum(3) = "Million"
thousendNum(4) = "Billion"
thousendNum(5) = "Trillion"
thousendNum(6) = "Quadrillion"
thousendNum(7) = "Quintillion"
thousendNum(8) = "Sextillion"
thousendNum(9) = "Septillion"
thousendNum(10) = "Octillion"
thousendNum(11) = "Nonillion"
thousendNum(12) = "Decillion"
thousendNum(13) = "Undecillion"
thousendNum(14) = "Duodecillion"
thousendNum(15) = "Tredecillion"
hundredNum(0) = ""
hundredNum(1) = ""
hundredNum(2) = "Twenty"
hundredNum(3) = "Thirty"
hundredNum(4) = "Forty"
hundredNum(5) = "Fifty"
hundredNum(6) = "Sixty"
hundredNum(7) = "Seventy"
hundredNum(8) = "Eighty"
hundredNum(9) = "Ninety"
unitNum(0) = ""
unitNum(1) = "One"
unitNum(2) = "Two"
unitNum(3) = "Three"
unitNum(4) = "Four"
unitNum(5) = "Five"
unitNum(6) = "Six"
unitNum(7) = "Seven"
unitNum(8) = "Eight"
unitNum(9) = "Nine"
unitNum(10) = "Ten"
unitNum(11) = "Eleven"
unitNum(12) = "Twelve"
unitNum(13) = "Thirteen"
unitNum(14) = "Fourteen"
unitNum(15) = "Fifteen"
unitNum(16) = "Sixteen"
unitNum(17) = "Seventeen"
unitNum(18) = "Eighteen"
unitNum(19) = "Nineteen"
End Sub
------------------------------------------------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
numGroup = 3
FormatInitialization()
End Sub
------------------------------------------------------------------------------
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
myNum = NumericTextBox.Text
If myNum.Length Mod numGroup <> 0 Then
myNum = myNum.PadLeft(myNum.Length + (numGroup - (myNum.Length Mod numGroup)), "0")
End If
NumericToWordTextBox.Text = ""
NumericToWordTextBox.Text = NumericToWords(myNum)
End Sub
------------------------------------------------------------------------------
End Class
Output:-
