I don't know much about Tcl, but I thought everything was a string, not a float? It appears to work with integers just fine:
$ echo 'puts [expr 2 ** 128 + 1]' | tclsh
340282366920938463463374607431768211457
$ python3 -c 'print(2 ** 128 + 1)'
340282366920938463463374607431768211457
$ node -p 'Math.pow(2, 128) + 1'
3.402823669209385e+38