为什么计算乘车费用float算的是69.399986,而用double算的是69.40000就更准确一些呢,实际的参数最多只有两位数而已?
#include <stdio.h> float cost(int way,int time) { float price; if(way<=3) { price=14; }else{ if(time>=23||time<=5) { price=cost(way-1,time)+2.3*1.2; } else{ price=cost(way-1,time)+2.3; } } return price; } int main(){ printf("上班打车费是%f元\n", cost(12,9)); printf("下班打车费是%f元\n", cost(12,18)); float pay=cost(12,9)+cost(12,18); printf("上下班打车费一共是%f元\n", pay); }