[娱乐] 浮点数那点事
我们首先看一个程序:程序代码:
#include <stdio.h> int main(int argc, char *argv[]) { float a, b, d; double c; a = 123.45; b = 123.5625; c = 123.45; d = 123.7; printf("a = %f, b = %f, c = %f, d = %f\n", a, b, c, d); return 0; }
猜想一下,程序运行之后会输出什么?
我们都知道float是单精度,double是双精度,都保留了小数点后6位数字。所以,有些朋友会想当然认为输出是:
a = 123.450000, b = 123.562500, c = 123.450000, d = 123.700000
猜想是否正确?我们大家不妨验证一下。然后想想这是为什么。