Narrowing Conversion in Java

Narrowing conversion is needed when you convert from a larger size type to a smaller size. This is for incompatible data types, wherein automatic conversions cannot be done.

Let us see an example wherein we are converting long to integer using Narrowing Conversion.

Example

<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Demo</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">    public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">       long</span><span class="pln"> longVal </span><span class="pun">=</span><span class="pln"> </span><span class="lit">878</span><span class="pun">;</span>
<span class="kwd">       int</span><span class="pln"> intVal </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> longVal</span><span class="pun">;</span>
<span class="typ">       System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Long: "</span><span class="pun">+</span><span class="pln">longVal</span><span class="pun">);</span>
<span class="typ">       System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Integer: "</span><span class="pun">+</span><span class="pln">intVal</span><span class="pun">);</span>
<span class="pun">    }</span>
<span class="pun">}</span>

Output

Long: 878
Integer: 878

Let us see another example, wherein we are converting double to long using Narrowing Conversion.

Example

<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Demo</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">    public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">       double</span><span class="pln"> doubleVal </span><span class="pun">=</span><span class="pln"> </span><span class="lit">299.89</span><span class="pun">;</span>
<span class="kwd">       long</span><span class="pln"> longVal </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">long</span><span class="pun">)</span><span class="pln">doubleVal</span><span class="pun">;</span>
<span class="typ">       System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Double: "</span><span class="pun">+</span><span class="pln">doubleVal</span><span class="pun">);</span>
<span class="typ">       System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Long: "</span><span class="pun">+</span><span class="pln">longVal</span><span class="pun">);</span>
<span class="pun">    }</span>
<span class="pun">}</span>

Output

Double: 299.89
Long: 299
Updated on: 2026-03-11T22:50:43+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements