Either try using a Float or do this:
Example 1
Let us consider the string "IT60Q0123412345000000753XYZ" and follow the steps of the algorithm:
This is a string of 27 characters.
It contains only capital letters and digits. In positions 0 and 1 there are letters IT, while in positions 2 and 3 the number 60.
Exchanging the first four characters with the rest, you obtain the string "Q0123412345000000753XYZIT60".
Converting it into a numerical string, "Q" is changed into 26, "0" is changed into 0, "1" is changed into 1, etc. The result is "260123412345000000753333435182960".
Let us break this numerical string into five parts: "26012341", "23450000", "00753333", "43518296" and "0". The remainder of the division of 26012341 by 97 is 45. The remainder of the division of 4523450000 by 97 is 15. The remainder of the division of 1500753333 by 97 is 82. The remainder of the division of 8243518296 by 97 is 68. The remainder of the division of 680 by 97 is 1.
Taken from: here
Long numbers can handle numbers up to 19 digits. That is not enough in your case. You will need to use BigIntegers in Java. In microflows you will have to represent those numbers as strings.
See http://stackoverflow.com/questions/849813/large-numbers-in-java