什么叫直接做?
int main(int argc, char *argv[]) {
float a = 10000000000.00;
float b = 0.00000000001;
printf("%f\n",a+b);//10000000000.000000
printf("%lf\n",a+b);//10000000000.000000
printf("%.12f\n",a+b);//10000000000.12个0
return 0;
}
我用的GCC环境 Dev C++ 测试的结果都不是
这个单纯的C 和标准库是无法做到的,IEEE定义的浮点数中最长的也只有16个字节,目前是无法放下
100000000000.000000000001
的所有的有效数字的。
可以使用一些其它的科学运算的库来做到。但是呢,最后这个尾数真的这么重要?
#include<stdio.h>好吧。。。我想知道怎么能做到 而且是用简单的方法
我测试了你的 这个程序 结果好夸张
如果是在Linux 有GMP可以用
#include <stdio.h>
编译时记得加上 -lgmp,比如文件名是 gmp_mpf_test.c
就这么搞
我编译后提示找不到gmp.h文件?是不是要安装什么库
GCC环境下没有long float !!!
追答......
好吧
什么叫直接做?
追答直接做就是很普通地做呀,不用犯愁,+就+,-就-,x就x,÷就÷,就你你3+5/4*10一样写表达式就行了!
追问做给我看看