error: variable veryFar might not have been initialized, (using BigInteger Please help fix this : I am making a converter which will convert numbers to text.I did everything as said in this [website](https://developer360.net/java-program-convert-number-to-words-android-studio/) and edited for using big Integers but it is then showing a variable is not intialized

I edited some things to make it compatible with big integers for bigger numbers, but it just shows variable veryFar maybe not initialized.(I edited the variable name to try fix it!)

This is my MainActivity.java

```java
package com.example.convertnumbertotext;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import java.math.BigInteger;
import java.text.DecimalFormat;


public class MainActivity extends AppCompatActivity {

    EditText etnum;
    Button btncon;
    TextView tvdisplay;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etnum = (EditText) findViewById(R.id.etnum);
        btncon = (Button) findViewById(R.id.btncon);
        tvdisplay = (TextView) findViewById(R.id.tvdisplay);

            btncon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    BigInteger numberToConvert = new BigInteger(etnum.getText().toString());

                    String return_val_in_english =   EnglishNumberToWords.convert(numberToConvert);

                    Toast.makeText(MainActivity.this,"Ammount "+" "+ return_val_in_english.toString(), Toast.LENGTH_LONG).show();

                    tvdisplay.setText(return_val_in_english);

                }
            });

    }



}
```

This is my XML file

```xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Number:"
        android:textSize="30dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <EditText
        android:id="@+id/etnum"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        android:inputType="number"
        android:textSize="37dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.241"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.072" />

    <Button
        android:id="@+id/btncon"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="convert"
        android:textSize="35dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.229" />

    <TextView
        android:id="@+id/tvdisplay"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:textSize="40dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.793"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.499" />

</android.support.constraint.ConstraintLayout>
```

and this is my separate class (It is the one showing errors

```java
package com.example.convertnumbertotext;

import java.math.BigInteger;
import java.text.DecimalFormat;

public class EnglishNumberToWords {

    private static BigInteger bi = new BigInteger("100");
    private static BigInteger bi2 = new BigInteger("20");
    private static BigInteger bi3 = new BigInteger("10");
    private static final String[] tensNames = { "", " ten", " twenty", " thirty", " forty",
            " fifty", " sixty", " seventy", " eighty", " ninety" };

    private static final String[] numNames = { "", " one", " two", " three", " four", " five",
            " six", " seven", " eight", " nine", " ten", " eleven", " twelve", " thirteen",
            " fourteen", " fifteen", " sixteen", " seventeen", " eighteen", " nineteen" };

    private static String convertLessThanOneThousand(BigInteger number) {
        String veryFar;
        BigInteger[] bii = number.divideAndRemainder(bi);
        BigInteger[] bii2 = number.divideAndRemainder(bi3);
        int resut = bii[1].compareTo(bi2);

        if (resut == -1) {
            veryFar = numNames[bii[1].intValue()];

            number = number.divide(bi);
        } else if (resut == 1 || resut == 0) {
            veryFar = numNames[bii2[1].intValue()];
            number = number.divide(bi3);

            veryFar = tensNames[bii2[1].intValue()] + veryFar;
            number = number.divide(bi3);
        }
        if (number.compareTo(BigInteger.valueOf(0)) == 0)
            return veryFar;
            return numNames[number.intValue()] + " hundred" + veryFar;
    }

        public static String convert (BigInteger number){
            // 0 to 999 999 999 999
            if (number.compareTo(BigInteger.valueOf(0)) == 0) {
                return "zero";
            }

            String snumber = number.toString();

            // pad with "0"
            String mask = "000000000000";
            DecimalFormat df = new DecimalFormat(mask);
            snumber = df.format(number);

            BigInteger trillions = new BigInteger(snumber.substring(0, 3));
            // nnnXXXnnnnnnnnn
            BigInteger billions = new BigInteger(snumber.substring(3, 6));
            // nnnnnnXXXnnnnnn
            BigInteger millions = new BigInteger(snumber.substring(6, 9));
            // nnnnnnnnnXXXnnn
            BigInteger hundredThousands = new BigInteger(snumber.substring(9, 12));
            // nnnnnnnnnnnnXXX
            BigInteger thousands = new BigInteger(snumber.substring(12, 15));

            String tradTrillions;
            if (trillions.compareTo(BigInteger.valueOf(0)) == 0) {
                tradTrillions = "";
            } else if (trillions.compareTo(BigInteger.valueOf(1)) == 0) {
                tradTrillions = convertLessThanOneThousand(trillions) + " trillion ";
            } else {
                tradTrillions = convertLessThanOneThousand(trillions) + " trillion ";
            }

            String result = tradTrillions;

            String tradBillions;
            if (billions.compareTo(BigInteger.valueOf(0)) == 0) {
                tradBillions = "";
            } else if (billions.compareTo(BigInteger.valueOf(1)) == 0) {
                tradBillions = convertLessThanOneThousand(billions) + " billion ";
            } else {

                tradBillions = convertLessThanOneThousand(billions) + " billion ";
            }
            result = result + tradBillions;

            String tradMillions;
            if (millions.compareTo(BigInteger.valueOf(0)) == 0) {
                tradMillions = "";
            } else if (millions.compareTo(BigInteger.valueOf(1)) == 0) {
                tradMillions = convertLessThanOneThousand(millions) + " million ";
            } else {

                tradMillions = convertLessThanOneThousand(millions) + " million ";
            }
            result = result + tradMillions;

            String tradHundredThousands;
            if (hundredThousands.compareTo(BigInteger.valueOf(0)) == 0) {
                tradHundredThousands = "";
            } else if (hundredThousands.compareTo(BigInteger.valueOf(1)) == 0) {

                tradHundredThousands = "one thousand ";
            } else {
                tradHundredThousands = convertLessThanOneThousand(hundredThousands) + " thousand ";
            }
            result = result + tradHundredThousands;

            String tradThousand;
            tradThousand = convertLessThanOneThousand(thousands);
            result = result + tradThousand;

            // remove extra spaces!
            return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " ");
        }

}
```


It shows 2 same error messages-
error: variable veryFar might not have been initialized
error: variable veryFar might not have been initialized

Please Help