Java allows implicit conversion of int to float. Why?
<p>In Java, we can convert an int to float implicitly, which may result in loss of precision  as shown in the example code below.</p>

<pre><code>public class Test {
    public  static void main(String [] args) {
        int intVal = 2147483647;
        System.out.println("integer value is " + intVal);
        double doubleVal = intVal;
        System.out.println("double value is " + doubleVal);
        float floatVal = intVal;
        System.out.println("float value is " + floatVal);
        }
}
</code></pre>

<p>The output is</p>

<pre><code>integer value is 2147483647
double value is 2.147483647E9
float value is 2.14748365E9
</code></pre>

<p>What is the reason behind allowing implicit conversion of int to float, when there is a loss of precision?</p>
