diff --git a/java-numbers-2/.gitignore b/java-numbers-2/.gitignore
new file mode 100644
index 0000000000..3de4cc647e
--- /dev/null
+++ b/java-numbers-2/.gitignore
@@ -0,0 +1,26 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+*.txt
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/java-numbers-2/pom.xml b/java-numbers-2/pom.xml
new file mode 100644
index 0000000000..57f1154f53
--- /dev/null
+++ b/java-numbers-2/pom.xml
@@ -0,0 +1,135 @@
+
+ 4.0.0
+ java-numbers-2
+ 0.1.0-SNAPSHOT
+ java-numbers-2
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${org.slf4j.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh-core.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh-generator.version}
+
+
+ org.apache.commons
+ commons-math3
+ ${commons-math3.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ org.decimal4j
+ decimal4j
+ ${decimal4j.version}
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+
+
+ java-numbers-2
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${maven-javadoc-plugin.version}
+
+ 1.8
+ 1.8
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
+
+
+ 3.6.1
+ 1.0.3
+ 3.5
+
+ 3.6.1
+
+ 1.7.21
+ 1.1.7
+
+ 2.21.0
+ 3.0.0-M1
+ 3.0.2
+
+
diff --git a/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java
new file mode 100644
index 0000000000..2001f39359
--- /dev/null
+++ b/java-numbers-2/src/test/java/com/baeldung/lossyconversion/ConversionTechniquesUnitTest.java
@@ -0,0 +1,68 @@
+package com.baeldung.lossyconversion;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+public class ConversionTechniquesUnitTest {
+
+ @Test
+ public void testPrimitiveConversion() {
+
+ long longNum = 24;
+ short shortNum = (short) longNum;
+ assertEquals(24, shortNum);
+
+ double doubleNum = 15.6;
+ int integerNum = (int) doubleNum;
+ assertEquals(15, integerNum);
+
+ long largeLongNum = 32768;
+ short minShortNum = (short) largeLongNum;
+ assertEquals(-32768, minShortNum);
+
+ long smallLongNum = -32769;
+ short maxShortNum = (short) smallLongNum;
+ assertEquals(32767, maxShortNum);
+
+ long maxLong = Long.MAX_VALUE;
+ int minInt = (int) maxLong;
+ assertEquals(-1, minInt);
+
+ long minLong = Long.MIN_VALUE;
+ int maxInt = (int) minLong;
+ assertEquals(0, maxInt);
+ }
+
+ @Test
+ public void testWrapperToPrimitiveConversion() {
+
+ Float floatNum = 17.564f;
+ long longNum = floatNum.longValue();
+ assertEquals(17, longNum);
+
+ Double doubleNum = 15.9999;
+ longNum = doubleNum.longValue();
+ assertEquals(15, longNum);
+ }
+
+ @Test
+ public void testWrapperToPrimitiveConversionUsingMathRound() {
+
+ Double doubleNum = 15.9999;
+ long longNum = Math.round(doubleNum);
+ assertEquals(16, longNum);
+ }
+
+ @Test
+ public void testWrapperConversion() {
+
+ Double doubleNum = 10.3;
+ double dbl = doubleNum.doubleValue(); //unboxing
+ int intgr = (int) dbl; //downcasting
+ Integer intNum = Integer.valueOf(intgr);
+ assertEquals(Integer.valueOf(10), intNum);
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index f40659bc16..33411ca43a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -461,6 +461,7 @@
java-lite
java-numbers
+ java-numbers-2
java-rmi
java-spi
java-streams
@@ -987,7 +988,6 @@
jws
libraries
-
persistence-modules/hibernate5
persistence-modules/hibernate-mapping
persistence-modules/java-jpa
@@ -1147,6 +1147,7 @@
java-ee-8-security-api
java-lite
java-numbers
+ java-numbers-2
java-rmi
java-spi
java-streams