如何创建小数位数多于浮点ANSI C的变量
我已经在网上搜索了一段时间了。。。但是我找不到一种方法让程序打印一个超过6位小数的数字。我需要更多的十进制数字来表示精度,因为我试图测量的差异远小于0.0000004(需要执行小函数的时间差异)。有没有办法提高精度 附言:我是编程的初学者 编辑:我应该在以下时间之前发布: 我正在使用一个简单的如何创建小数位数多于浮点ANSI C的变量,c,variables,precision,ansi-c,C,Variables,Precision,Ansi C,我已经在网上搜索了一段时间了。。。但是我找不到一种方法让程序打印一个超过6位小数的数字。我需要更多的十进制数字来表示精度,因为我试图测量的差异远小于0.0000004(需要执行小函数的时间差异)。有没有办法提高精度 附言:我是编程的初学者 编辑:我应该在以下时间之前发布: 我正在使用一个简单的clock()安排来获取时间。在这种情况下: double t; start = clock(); f(); t = (double)(clock() - start)/CLOCKS_PER
clock()
安排来获取时间。在这种情况下:
double t;
start = clock();
f();
t = (double)(clock() - start)/CLOCKS_PER_SEC;
printf("t = %lf", t);
但它总是返回0.000000,因为我能给t的最小值是0.000001,函数“f”运行所需的时间小于该值 如果您正在寻找精度更高的数据类型,可以使用double并说明要打印多少位
有关数据类型的更多详细信息-以下是如何在浮点后打印10位数字:
printf("t = %.10lf", t);
printf("t = %.15lf", t);
以下是如何打印浮点后的15位数字:
printf("t = %.10lf", t);
printf("t = %.15lf", t);
我已编辑该函数,以包含我用于获取时间值的结构。我至少需要存储纳秒,双值t只允许我存储一微秒。很抱歉,我没有首先发送代码结构。对于仅配置
printf
输出,您可以看到。通常情况下,人们通过反复运行被测函数来解决这一问题,可以运行预设次数(例如,一百万次)或预设时间(并计算函数运行的次数,例如,1秒)。通过使用该时间和时钟时间,它只能获得相同的精度:对于花费超过0.000001秒的函数,例如0.000123,它将打印0.0001230000…和一组零。与我使用的(数字)一样多lf
。有没有办法提高时间测量的精度?因为它不会像我制作(和发布)的方式记录更多的小数点