You can walk through the json object, and if it is a number, multiply by 100, round, and then divide by 100. This will give two decimal positions (not two significant figures). But it produces your expected output, however a = -0
jq 'walk(if type == "number" then (.* 100 | round / 100) else . end)' data.json