为什么f要用double类型?怎么判断?