[code]double a=10/3.0; printf("%.60f",a);[/code] 结果是3.333333333333333481363069950020872056484222412109375 3后面的无效数字是怎么得来的? [ 本帖最后由 meiyuhan 于 2007-12-17 22:41 编辑 ]
[code][root@Mylinux tmp]# echo "0.12345678" | awk '{print $0+0}' 0.123457 [root@Mylinux tmp]# echo "0.12345678" | awk '{printf "%f\n",$0+0}' 0.123457 [root@Mylinux tmp]# echo "0.12345678" | awk '{printf "%.9f\n",$0+0}' 0.123456780[/code] 因数据处理,需要对两份文件的某字段进行数值比对,且都需要先+0转换成数值类型,但发现awk的默认浮点数输出只到小数点后8位,这样就会丢失小数点后8位后的数值。...
以下代码在第七次执行的时候就出错. 两个宏: #define tpra(a) ((a)*0.01 - 40) #define humd(b) (0.0405*(b) - 2.8*(b)*(b)*0.000001 - 4) for(i = 0; i < 8; i++) { bzero(tmps, 10); sprintf(tmps, "%02x%02x", *(ptr + 2 * i + 1), *(ptr + 2 * (i + 1))); sscanf(tmps, "%x", &tmpv); i < 4 ? (tmpf = tpra(tmpv)) : (tmpf = humd(tmpv)); /*i = ...
小数点的表示 为了节省内存,计算机中数值型数据的小数点的位置是隐含的,且小数点的位置既可以是固定的,也可以是变化的。 定点数与浮点数 如果小数点的位置事先已有约定,不再改变,此类数称为“定点数”。相比之下,如果小数点的位置可变,则称为“浮点数”。 ⑴ 定点数。常用的定点数有两种表示形式:如果小数点位置约定在最低数值位的后面,则该数只能是定点整数;如果小数点位置约定在最高数值位的前面,则...
所有的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次方再加上符号。下面来看一下具体的规格: 符号位 指数位 小数部分 指数偏移量 单精度浮点数 1 位[31] 8位 [30-23] 23位 [22-00] 127 双精度浮点数 1 位[63] 11 位[62-52] 52 位[51-00] 1023 我们以...