If you are a regular user of Microsoft Excel then you might be in danger while typing more than 15 digits in a cell. If you type 1111222233334444 then it will be 1111222233334440. Or if you type 25127680876675435 then it will be 25127680876675400. Simply the digits after 15th place will be changed to zeros! Doesn't it seem peculiar?
Today I will explain when & why this problem occurs and how you can solve it easily.
When the Problem Occurs?
The problem occurs when you try to type more than 15 digits in a cell like below:
####-####-####-####
1234324545679876
But when you press Enter, the output will be 1234324545679870. Excel changes the last digit to a 0. And why someone needs to type more than 15 digits in a cell? It can't be a currency figure.
Usually when you type a Credit Card/ Debit Card/ BO Account Number you have to type 16 digits. And the calculation of excel doesn't allow you to type more than 15 digits. That's why it converts the last digits (after 15th place) into zeros.
Reason
You may ask - why Excel restricts users to type 15 digits in a cell? I'm also searching for a satisfactory answer. I found the following reason from Microsoft Support:
Excel follows the IEEE 754 specification on how to store and calculate floating-point numbers. Excel therefore stores only 15 significant digits in a number, and changes digits after the fifteenth place to zeroes.
I don't know what does it mean! :) Anyway, I can show you several ways to get rid of this problem . . .
Solution
There are several ways through which you can avoid this problem. First I'd like to show you an easy way:
Method 1: Putting Inverted (') Before the Number
When you type more than 15 digits in a cell, just place an inverted comma ( ' ) before that number. And that mark will not be displayed on the sheet after pressing Enter! Though it will be displayed in the formula bar. Look at the image below:
I don't know why the inverted mark disappears automatically. But I can explain why the 16th digit doesn't change to 0. Because when you type ' before a number then Excel doesn't consider this value as Number. It maybe consider the cell as text. That's why it remains unchanged.
Method 2: Format the Cell as Text
Maybe the 2nd method is more useful. Before typing more than 16 digits in a cell, you have to format those cells as text.
You need to select the cells first. Office 2003 users will find the Format Cell options from the Format Menu > Cells > Format Cells. And Office 2007 and 2010 users will get this as below:
Format cell window is same in all version of MS Excel. After selecting the cells, you will just need to choose the Text option and then hit OK. That's it.
Now you will be able to type more than thousand characters in a single cell!
Applies to:
All versions of Microsoft Excel.
In Excel, the floating point type is Double which is a IEEE 64-bit (8-byte) floating-point number. These can display 15 digit precision (well sort of, see the MSDN article Excel Worksheet and Expression Evaluation).
ReplyDeleteThe reason is the limited precision that can be stored in a floating point variable. For a complete explanation you should read the paper "What Every Computer Scientist Should Know About Floating-Point Arithmetic", by David Goldberg, published in the March, 1991 issue of Computing Surveys.
Another, more accessible site, is Chip Pearson's site.
Thank u
ReplyDeleteSimilar to above discussion, my problem is thus:
ReplyDeleteI want to type two mobile numbers in one cell of the excel with this cell/display format: #####-#####, #####-##### (means one hyphen after every 5 digits).
But it keeps changing the last 4 digits into zeros.
Is it possible in any way?
Why don't just follow the 2nd method? Format the cell as text as shown in the image. Then you can type as many digits as you want . . . :)
DeleteThnk u but, after save as the reopen this one it's showing same format, it;s mean last number is zero
ReplyDeleteThnk u but, after save as the reopen this one it's showing same format, it;s mean last number is zero
ReplyDeleteBefore put any number in your sheet just right click select the row/column where you wanna put the numbers (more than 15 digit numbers)and choose format cells.... and choose text from the list and simply click on ok button than here you go... thanks.
ReplyDeleteYeah that's the short way. Thanks for the comment ...
Delete