(2006-05-17) Large Integers And VBS Or BATCH
Posted by Jorge on 2006-05-17
For a script I was writing, I needed to work with large integers.
Example code in VBS was to compare very large numeric numbers:
Dim LargestValue LargestValue=0 AR = Array("134234","22342399999999999994","9","555555555577698","6","5") For l = 0 to UBound(AR) If LargestValue < Int(AR(l)) then LargestValue = Int(AR(l)) End If Next wscript.echo LargestValue
As you can see 22342399999999999994 is the largest value and it should be returned as such. Well it does, almost…
However, it does not say (and that is what I would like!):
22342399999999999994
but it says:
2.23424E+19
As soon as a numeric value gets a certain size it converts it to x.xxxxE+y
Example code in VBS was to compare very large numeric numbers:
@ECHO OFF CLS SETLOCAL ENABLEDELAYEDEXPANSION SET LargestValue=0 FOR /F %%I IN (NUMBERS.TXT) DO ( IF /I !LargestValue! LSS %%I ( SET LargestValue=%%I ) ) ECHO !LargestValue!
In this case it does return the largest value as I want…
So I thought, lets do it in batch. So before continuing I thought "let’s do another test of creating an addition of very large numbers". The code would look like:
@ECHO OFF CLS SETLOCAL ENABLEDELAYEDEXPANSION SET NUMBER1=4611689999999999999 SET NUMBER2=500000 SET /A NUMBERTOTAL=%NUMBER1% ++ %NUMBER2% ECHO %NUMBERTOTAL%
now guess what the output was!….
it was:
Invalid number. Numbers are limited to 32-bits of precision.
Cheers,
Jorge
———————————————————————————————
* This posting is provided "AS IS" with no warranties and confers no rights!
* Always evaluate/test yourself before using/implementing this!
* DISCLAIMER: https://jorgequestforknowledge.wordpress.com/disclaimer/
———————————————————————————————
############### Jorge’s Quest For Knowledge #############
######### http://JorgeQuestForKnowledge.wordpress.com/ ########
———————————————————————————————
carlos said
C++ or .net man I told you once Ive told you many times ;P
C
LikeLike
tomek said
Yup – I told him the same today on MSN :), but Jorge found some workaround and probably will share with us results of his tests.
I also found few blog links which may be usefull in his tests – waiting for update.
LikeLike