【高精浮点】关于long double的使用方法 |
您所在的位置:网站首页 › scanf怎么输入double型 › 【高精浮点】关于long double的使用方法 |
本文于 2023.3.17 更新并添加部分内容。 本文于 2023.4.13 修改关于 long double 的字节数和精度。 听说今天桂林CCPC计算几何卡了double,就来学一下更高精的浮点long double。文章链接: long double 使用方法long double 高精度数据的使用 总结:性质: double 占 8 字节;long double 有 16 字节、12 字节、8 字节,其中 16 字节占大多数,因为 ANSI C 标准并未规定 long double 的确切精度,所以对于不同平台可能有不同的实现。 double 能精确有效数字的 14 或 15 位;long double 的精确位数要看平台和编译器具体实现。经测试,在我的电脑(long double 12 字节)和洛谷在线 IDE (long double 16 字节)能精确到 18 或 19 位左右。以下是在一些不同编译器上的测试代码: GNU C++17 (64):https://codeforces.com/contest/1816/submission/201913463 GNU C++20 (64):https://codeforces.com/contest/1816/submission/201913498 GNU C++17:https://codeforces.com/contest/1816/submission/201913535 Clang++17 Diagnostics:https://codeforces.com/contest/1816/submission/201913549 MS C++ 2017:https://codeforces.com/contest/1816/submission/201913729 圆周率前 30 位为:3.14159265358979323846264338327,可以自行比较。 写代码注意事项: 输入输出:long double 可以用 scanf,printf 或者 cin,cout 输入输出。如用前者,则使用方法如下: 输入: scanf("%Lf", &a); 输出: printf("%.10Lf", a); 函数:long double 的常用函数都要在末尾加个 l , 如fabsl(a) , sqrtl(a) , cosl(a) , … 。这种函数涉及到浮点数的话,都是 long double 类型的。举例如图: ![]() ![]() 整数输入到浮点数中是没有精度损失的,叉乘可以直接根据==0来判断是否为零。测试代码 当要求输出答案精度较大时,为了防止误差累加累乘,最好用long double。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |