DEV Community 👩‍💻👨‍💻

Cover image for 5.1 * 100 != 510 🤯 , Why you have to be careful with Doubles and Floats !
Shrihari Mohan
Shrihari Mohan

Posted on

5.1 * 100 != 510 🤯 , Why you have to be careful with Doubles and Floats !

Internally Integers and Floats are stored differently.
This is how integers are stored depending upon the machine the number of bits will be different. ( Normally it will be 32 or 64 bit)

Integers Representation

By default most of the modern languages save a float/double
as double precision( 64 Bit) But for this blog I will show you a 32 bit model! For the same value 20 but 20.0 will be saved in the IEEE754 Double Precision Format.

Below is the image showing single precision format
32 Bit Single Precision

But why ?

This is because we can save integers easily in the binary form but not floats. Floats are special numbers and always require special care when dealing them especially if you're using them for calculations. This talks about Floats and Binary

5.1

We can see there are some errors during the conversion of this float to binary. This is why we get this title.

5.1 * 100

We had this problem when we were developing a payment page as the input should be number.

The simplest solution is to use regex pattern for number and input type = "text"

. Peace 🕊


If you are here it means you may have enjoyed reading this blog. Just follow me @shrihari which will motivate to write more and contribute open source and may considering a buttermilk 🥛.

If you want to receive these blogs in your mail from @Medium. Subscribe to my blogs

Shrihari

I write stuff on DevTo and Medium

favicon shrihari-portfolio.vercel.app

More Free Articles From me

Top comments (0)

🔠 Find your favorite font

 
You can change your default font in Settings.