Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建小数位数多于浮点ANSI C的变量_C_Variables_Precision_Ansi C - Fatal编程技术网

如何创建小数位数多于浮点ANSI C的变量

如何创建小数位数多于浮点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

我已经在网上搜索了一段时间了。。。但是我找不到一种方法让程序打印一个超过6位小数的数字。我需要更多的十进制数字来表示精度,因为我试图测量的差异远小于0.0000004(需要执行小函数的时间差异)。有没有办法提高精度

附言:我是编程的初学者

编辑:我应该在以下时间之前发布:

我正在使用一个简单的
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
。有没有办法提高时间测量的精度?因为它不会像我制作(和发布)的方式记录更多的小数点