use 64 bits to store price to avoid overflow on large quantity