这是一个更为精确的版本