user35689: There was a similar thread before but it didn't solve my problem. I had an issue with sending GPS data, which is float, and I couldn't receive the float with the same amount of significant figures as I was sending. I always received a number with 2 digits after a decimal point. So I started debugging and wrote this simple code just to check if floats work as intended: 
#include <SoftwareSerial.h>
void setup() {
Serial.begin(9600);
}
void loop() {
float number1;
number1=1.45436;
Serial.print(number1);
delay(200);
}

And the serial monitor showed 1.45 as an output. How can increase the precision of the float I am saving in memory?

user30005: Multiply your float by 10000 (or whatever number you wish), send it as an integer, and convert the received integer back to float.
Alternatively change the library or write your own.

user17164: By default, Serial.print() prints floats with two decimal digits.
float num = 7.875;
Serial.println(num, 4);

will print num with 4 decimal digits, thus: 7.8750.
The precision of float is not decreased in the way you think it decreases. See this answer for a better explanation.

user31105: By default, the Serial print function shows only 2 decimals, however I'm sure the float has the full (unrounded) value, even if it does not show it.
You can read about it in the official documentation here
With the following code you can use more decimals (fragment from the official documentation):
-Serial.println(1.23456, 0) gives "1" 
-Serial.println(1.23456, 2) gives "1.23" 
-Serial.println(1.23456, 4) gives "1.2346" 

Also, probably the next link (PrintFloat) will help:
PrintFloat
It works roughly by iterating through the digits and printing them.

35689: <p>There was a similar thread before but it didn't solve my problem. I had an issue with sending GPS data, which is float, and I couldn't receive the float with the same amount of significant figures as I was sending. I always received a number with 2 digits after a decimal point. So I started debugging and wrote this simple code just to check if floats work as intended: </p>

<pre><code>#include &lt;SoftwareSerial.h&gt;
void setup() {
Serial.begin(9600);
}
void loop() {
float number1;
number1=1.45436;
Serial.print(number1);
delay(200);
}
</code></pre>

<p>And the serial monitor showed 1.45 as an output. How can increase the precision of the float I am saving in memory?</p>
 30005: <p>Multiply your float by 10000 (or whatever number you wish), send it as an integer, and convert the received integer back to float.</p>

<p>Alternatively change the library or write your own.</p>
 17164: <p>By default, <a href="https://www.arduino.cc/en/Serial/Print" rel="noreferrer"><code>Serial.print()</code></a> prints floats with two decimal digits.</p>

<pre><code>float num = 7.875;
Serial.println(num, 4);
</code></pre>

<p>will print <code>num</code> with 4 decimal digits, thus: 7.8750.</p>

<p>The precision of float is not decreased in the way you think it decreases. <a href="https://arduino.stackexchange.com/a/10037/17164">See this answer for a better explanation</a>.</p>
 31105: <p>By default, the Serial print function shows only 2 decimals, however I'm sure the float has the full (unrounded) value, even if it does not show it.</p>

<p>You can read about it in the official documentation <a href="https://www.arduino.cc/en/Serial/Print" rel="noreferrer">here</a></p>

<p>With the following code you can use more decimals (fragment from the official documentation):</p>

<pre><code>-Serial.println(1.23456, 0) gives "1" 
-Serial.println(1.23456, 2) gives "1.23" 
-Serial.println(1.23456, 4) gives "1.2346" 
</code></pre>

<p>Also, probably the next link (PrintFloat) will help:</p>

<p><a href="http://playground.arduino.cc/Code/PrintFloats" rel="noreferrer">PrintFloat</a></p>

<p>It works roughly by iterating through the digits and printing them.</p>
