The answer is in the manual:
Note: some shells (e.g., bash(1)) have a built-in time command that provides less functionality than the command described here. To access the real command, you may need to specify its pathname (something like /usr/bin/time).
You're getting the increased precision from the
bash builtin; if you run
/usr/bin/time from the shell you will see two decimal places as well.
time is a special case, in that it's a keyword and not actually a builtin command. Otherwise bash's
builtin command could be used to force it.
So it looks like you're stuck with two decimal places unless you want to try a different method:
start_time=`date +%s%N` wget http://some.url end_time=`date +%s%N` bc -l <<< "scale=4;($end_time - $start_time) / 1000000000"