Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to add more than 20 digits in an Excel cell.

The current format of the cell is general, it converts the number to an exponential format. I tried with a number format and accounting, but when I enter more than 15 digits it gets converted to 0's.

What are the recommended steps for stopping Excel from converting data to exponential Format for 20 digits when in the general format?

Example: 12345678901234567890

Excel converts it to 1.23457E+19 in general format.

Without using ' before the value, is there any other way to keep value same?

share|improve this question
Do you really need to do calculations with that much precision? That's like trying to count how many hydrogen atoms you could line up along the earth's orbital radius. What practical difference does it make if you're out by a million or two atoms? – Andrew Turner Jan 3 '12 at 13:37
I used to work on financial app. I had to store a product of 8 digits x 8 digits temporarily while calculating. 8 digit is not that uncommon, right? – Kenji Noguchi May 29 '13 at 11:54
Please tell us the reason why you need to do this. It sounds like an XY problem – Jan Doggen Oct 27 '14 at 11:24
There is no other way in the current version of excel. – Firee Feb 22 at 12:06

Some numbers are displayed in exponential format if the column is too narrow and you can fix this by increasing the width of the column.

However, very large numbers in Excel are stored in floating point format and cannot be represented in Excel exactly. You may be able to override their display using cell formatting but the true values will still be stored and processed using floating point arithmetic, with its inherent limitations.

If you need to perform calculations with greater precision you need an application that supports arbitrary precision arithmetic.

share|improve this answer
By increasing width of column also number format in exponential only – user111921 Jan 3 '12 at 5:04
@user111921, correct. If the number is very large it is stored in floating point format and must be displayed in exponential form, no matter how wide the column is. – Mike Fitzpatrick Jan 3 '12 at 5:14
NUmber format is normal number there is no floating point.For normal number range after 15 digits value the value is changes to exponential format – user111921 Jan 3 '12 at 5:19
@user111921, correct. If you enter a large integer into Excel it will be converted to floating point (with some loss of precision) and displayed in exponential form. It is unavoidable in Excel and most other applications unless they specifically support arbitrary precision arithmetic. – Mike Fitzpatrick Jan 3 '12 at 5:23
To be precise, Excel 2010 doesn't support integers with more than 10 digits. Enter a number with 11 digits, or enter 9,999,999,999 and add one to it in a formula, and you end up with a floating point number. You can format it as an integer, but you still your low digits will be lost to rounding error. – Isaac Rabinovitch Oct 8 '12 at 4:48

The 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.

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).

share|improve this answer

When you don't need to calculate with these numbers, you can treat them as text, see the other answers. When you need to calculate with them, then it becomes difficult because Excel has only 15 siginificant digits. The possibilities I know are:

  1. Split the number in 2 (or more) cells. Put a part of the number in one cell and the remainder in another cell. The consequence is that you need to develop your own formules for calculations.

  2. Another solution is using add-in's. For a free one study the articles mentioned in

share|improve this answer

I'm using Excel 2007 and I found a way to do what you're trying to do.

  1. Select the cells that you will fill with numbers with lots of digits;
  2. Find "Number Format" under the Home tab and choose "More Number Formats";
  3. Choose Custom and choose the second option. (Only the number 0)
share|improve this answer
The problem isn't that the numbers aren't displaying, it's that Excel is dropping them entirely by rounding. – Allen Gould Aug 7 '13 at 21:04
  1. just copy your number from the cell
  2. format another cell(where to copy-destination cell) as text
  3. double click on the destination cell and paste in it.
share|improve this answer

I had to have a large number in order to create a unique number for a website.

In the end I created the large numbers by using concatenate to add cells together. Example:

OL  2890000000  0000004 OL28900000000000004
OL  2890000000  0000005 OL28900000000000005
OL  2890000000  0000006 OL28900000000000006
OL  2890000000  0000007 OL28900000000000007
OL  2890000000  0000008 OL28900000000000008
share|improve this answer

If you are just entering information without having to do any math or calculations, format the cell as 'text'. Not sure why it won't work in the number format.

share|improve this answer

You might be able to solve the issue with these two steps:

1) Seperate the numbers into as many columns as necessary. Make sure the format is TEXT.

2) Use FORMULA>TEXT>CONCATENATE to combine the columns into one column and you should get your desired result.

In any case that you need to do so for running numbers like serial numbers for example, seperate the numbers and run them down in GENERAL format first, then combine.

share|improve this answer

I had the same issue with barcodes that I was pulling from a database, the solution that worked best for me is to pass the number to excel as a formula that displays text.

For example, instead of passing just the barcode, I was passing ="barcode" so that excel interprets as a string a shows the whole number without any other characters as in the ' solution. This way you can copy and paste the number easily.

Here's my SQL function:

ALTER function [dbo].[ConvertBarcode](@BARCODE varchar(40))
returns varchar(40)
return '="'+@BARCODE+'"'

Happy coding!

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .