Less Than Dot is a community of passionate IT professionals and enthusiasts dedicated to sharing technical knowledge, experience, and assistance. Inside you will find reference materials, interesting technical discussions, and expert tips and commentary. Once you register for an account you will have immediate access to the forums and all past articles and commentaries.
VB.Net: Numbers to French words
From Wiki
- Namespace Functions
- ''' <summary>
- '''
- ''' </summary>
- ''' <remarks></remarks>
- Public Class NumberToFrenchWords
- #Region " Private members "
- ''' <summary>
- '''
- ''' </summary>
- ''' <remarks></remarks>
- Dim _Value As Double
- ''' <summary>
- '''
- ''' </summary>
- ''' <remarks></remarks>
- Dim _French As String
- #End Region
- #Region " Public properties "
- ''' <summary>
- '''
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Property Value() As Double
- Get
- Return _Value
- End Get
- Set(ByVal Value As Double)
- _Value = Value
- NumbertoWords()
- End Set
- End Property
- ''' <summary>
- '''
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public ReadOnly Property French() As String
- Get
- Return _French
- End Get
- End Property
- #End Region
- #Region " Constructors "
- ''' <summary>
- '''
- ''' </summary>
- ''' <remarks></remarks>
- Public Sub New()
- _Value = 0
- NumbertoWords()
- End Sub
- ''' <summary>
- '''
- ''' </summary>
- ''' <param name="Value"></param>
- ''' <remarks></remarks>
- Public Sub New(ByVal Value As Double)
- _Value = Value
- NumbertoWords()
- End Sub
- #End Region
- #Region " Private methods "
- ''' <summary>
- '''
- ''' </summary>
- ''' <remarks></remarks>
- Private Sub NumbertoWords()
- Dim strInwords As String
- Dim dblNumberbeforecomma, dblNumberdecimals As Double
- Dim intNumber(10) As Integer
- Dim intTemp As Integer
- If _Value < 1000000 Then
- strInwords = ""
- If dblNumberbeforecomma >= 1000 Then
- If dblNumberbeforecomma >= 2000 Then
- strInwords = valeur(intNumber(1), intNumber(2), intNumber(3)).TrimStart(Convert.ToChar(" ")) & " mille"
- Else
- strInwords = "mille"
- End If
- End If
- If dblNumberbeforecomma > 1 Then
- strInwords &= " " & valeur(intNumber(4), intNumber(5), intNumber(6)).TrimStart(Convert.ToChar(" ")) & " euros"
- Else
- strInwords &= " " & valeur(intNumber(4), intNumber(5), intNumber(6)).TrimStart(Convert.ToChar(" ")) & " euro"
- End If
- If dblNumberdecimals > 0 Then
- If dblNumberdecimals > 1 Then
- strInwords &= " " & valeur(0, Convert.ToInt32(dblNumberdecimals) \ 10, Convert.ToInt32(dblNumberdecimals Mod 10)).TrimStart(Convert.ToChar(" ")) & " cents"
- Else
- strInwords &= " " & valeur(0, Convert.ToInt32(dblNumberdecimals) \ 10, Convert.ToInt32(dblNumberdecimals Mod 10)).TrimStart(Convert.ToChar(" ")) & " cent"
- End If
- End If
- _French = strInwords.TrimStart(Convert.ToChar(" "))
- End If
- End Sub
- ''' <summary>
- '''
- ''' </summary>
- ''' <param name="number"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Private Shared Function unité(ByVal number As Integer) As String
- Dim A(20) As String
- A(1) = "un"
- A(2) = "deux"
- A(3) = "trois"
- A(4) = "quatre"
- A(5) = "cinq"
- A(6) = "six"
- A(7) = "sept"
- A(8) = "huit"
- A(9) = "neuf"
- A(11) = "onze"
- A(12) = "douze"
- A(13) = "treize"
- A(14) = "quatorze"
- A(15) = "quinze"
- A(16) = "seize"
- A(17) = "dix-sept"
- A(18) = "dix-huit"
- A(19) = "dix-neuf"
- Return A(number)
- End Function
- ''' <summary>
- '''
- ''' </summary>
- ''' <param name="number"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Private Shared Function dizaine(ByVal number As Integer) As String
- Dim A(10) As String
- A(1) = "dix"
- A(2) = "vingt"
- A(3) = "trente"
- A(4) = "quarante"
- A(5) = "cinquante"
- A(6) = "soixante"
- A(7) = "soixante"
- A(8) = "quatre-vingt"
- A(9) = "nonante"
- Return A(number)
- End Function
- ''' <summary>
- '''
- ''' </summary>
- ''' <param name="A"></param>
- ''' <param name="B"></param>
- ''' <param name="C"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Private Shared Function valeur(ByVal A As Integer, ByVal B As Integer, ByVal C As Integer) As String
- Dim spatieA, spatieB As String
- If B > 0 Then
- spatieA = " "
- Else
- spatieA = ""
- End If
- If C > 0 Then
- spatieB = " "
- Else
- spatieB = ""
- End If
- valeur = ""
- If A > 0 Then
- If A > 1 Then
- valeur = unité(A)
- End If
- valeur &= " cent"
- End If
- If (A > 1 And B = 0 And C = 0) Then
- valeur = valeur & "s"
- End If
- If B > 0 Then
- If B = 1 Then
- If C = 0 Then
- valeur = valeur & " dix"
- Else
- valeur = valeur & spatieB & unité(10 + C)
- End If
- Else
- valeur = valeur & spatieB & dizaine(B)
- If C = 0 Then
- If B = 7 Then valeur = valeur & "-dix"
- If B = 8 Then valeur = valeur & "s"
- Else
- If C = 1 Then
- If B = 7 Then valeur = valeur & " et onze"
- If B = 8 Then valeur = valeur & "-un"
- If Not (B = 7 Or B = 8) Then valeur = valeur & " et un"
- Else
- If B = 7 Then
- valeur = valeur & "-" & unité(10 + C)
- Else
- valeur = valeur & "-" & unité(C)
- End If
- End If
- End If
- End If
- Else
- If C > 0 Then valeur = valeur & spatieB & unité(C)
- End If
- End Function
- #End Region
- End Class
- End Namespace
This class does what it says it does it translates a number in to words for the french language.



LTD Social Sitings
Note: Watch for social icons on posts by your favorite authors to follow their postings on these and other social sites.