CR has the interesting limitation that the highest precision numeric value it can display is 10 decimal places (this includes trying to use the totext()
function to cast the number to a string). This means that any float over that precision will be rounded at that tenth decimal.
Because of this and the fact that you're using a float which is precise up to 15 digits, the quick and dirty solution is to just manually convert to scientific notation by moving your decimal place over 5. You can accomplish this with something like:
totext({table.numeric} * 10^5,10) & "E-5"
Obviously, this will just indiscriminately convert all your numbers in Col2 to scientific notation whether they require it or not, so you may wish to add some additional conditional processing.
Note that if you Google "Crystal Reports scientific notation" you can find some custom functions to do that for you... but just be careful because a lot of these functions do not take the additional precision into account and WILL result in a much less precise number. In fact, the very first hit (HOw to display Number in Scientific Notation in version 2008) will chop that precision down to 10 digits in the very first line by using the totext()
function.