'Convert numerical amount to words in vb.net showing Type Expected error

I am trying to convert numeric numbers to words in vb.net. But somewhere I am getting Type Expected error. Below is my entire code. I am also putting code separately where this error is coming.

Public Shared Function ConvertNumbertoWords(number As Integer) As String
    If number = 0 Then
        Return "ZERO"
    End If
    If number < 0 Then
        Return Convert.ToString("minus ") & ConvertNumbertoWords(Math.Abs(number))
    End If
    Dim words As String = ""
    If (number / 1000000) > 0 Then
        words += ConvertNumbertoWords(number / 1000000) & Convert.ToString(" MILLION ")
        number = number Mod 1000000
    End If
    If (number / 1000) > 0 Then
        words += ConvertNumbertoWords(number / 1000) & Convert.ToString(" THOUSAND ")
        number = number Mod 1000
    End If
    If (number / 100) > 0 Then
        words += ConvertNumbertoWords(number / 100) & Convert.ToString(" HUNDRED ")
        number = number Mod 100
    End If
    If number > 0 Then
        If words <> "" Then
            words += "AND "
        End If
        Dim unitsMap = New () {"ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE",
            "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN",
            "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN",
            "EIGHTEEN", "NINETEEN"}
        Dim tensMap = New () {"ZERO", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY",
            "SIXTY", "SEVENTY", "EIGHTY", "NINETY"}

        If number < 20 Then
            words += unitsMap(number)
        Else
            words += tensMap(number / 10)
            If (number Mod 10) > 0 Then
                words += " " + unitsMap(number Mod 10)
            End If
        End If
    End If
    Return words
End Function

In below line I am getting Type Expected error

Dim unitsMap = New () {"ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE",
                "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN",
                "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN",
                "EIGHTEEN", "NINETEEN"}
            Dim tensMap = New () {"ZERO", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY",
                "SIXTY", "SEVENTY", "EIGHTY", "NINETY"}


Solution 1:[1]

You are getting this error because you are not specifying the type of array you are about to declare.i got no error when i tried with this

  Dim unitsMap  = New string() {"ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN","EIGHTEEN", "NINETEEN"}

hope this helps.

Solution 2:[2]

Even though number is an integer, number / 1000000 returns a double with the value .003256 (when number is 3256), which is > 0

For integer division, use \

If (number \ 1000000) > 0 Then

floating-point division operator

integer division operator

Note: number is the name if the variable in the OP. “The” number is not better formatting.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 akhil kumar
Solution 2