JSON has a problem when integers get larger than 1016 because JavaScript uses floating point for all its numbers. Most languages, including Python, R, and the JVM languages like Groovy can easily handle integers up to 1019, and sometimes larger.
Numbers this large are useful for measuring time in nanoseconds, for example.
BeakerX table and plot widgets have special support 64-bit and arbitrary precision values. Run these cells, then hover over the columns to see their types.
In [ ]:
def millis = new Date().time
def nanos = millis * 1000 * 1000L
[[time: nanos + 7 * 1, next_time:(nanos + 77) * 1, temp:14.6],
[time: nanos + 7 * 2, next_time:(nanos + 88) * 2, temp:18.1],
[time: nanos + 7 * 3, next_time:(nanos + 99) * 3, temp:23.6]]
In [ ]:
def today = new Date()
def millis = today.time
// the "g" makes this a bignum, with as many bits as needed
def nanos = millis * 1000 * 1000g
[[time: nanos + 7 * 1, next_time:(nanos + 77) * 777, temp:3.351],
[time: nanos + 7 * 2, next_time:(nanos + 88) * 888, temp:2.355],
[time: nanos + 7 * 3, next_time:(nanos + 99) * 999, temp:2.728]]