Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
用c语言计算长双环路的功率给出了错误的答案 inti; 长双y=1,z=10; 对于(i=1;i 100000000000000000617922327239436892408592901966742040537925613294617009388085226111802198127411200.000000_C_Double_Long Integer_Floating - Fatal编程技术网

用c语言计算长双环路的功率给出了错误的答案 inti; 长双y=1,z=10; 对于(i=1;i 100000000000000000617922327239436892408592901966742040537925613294617009388085226111802198127411200.000000

用c语言计算长双环路的功率给出了错误的答案 inti; 长双y=1,z=10; 对于(i=1;i 100000000000000000617922327239436892408592901966742040537925613294617009388085226111802198127411200.000000,c,double,long-integer,floating,C,Double,Long Integer,Floating,当我尝试像这样初始化它时 y=100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0; 打印时,它不会给出正确的ans。 “长双精度”没有精确表示100位数字的精度。因此,您看到的是“正确答案”-长双精度通常为80到128位,精度约为20+左右的十进制数字,远不及100。长双精度”没有精确表示100位数字的精度准确地表示100位数字。因此,您看到的是

当我尝试像这样初始化它时 y=100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0; 打印时,它不会给出正确的ans。
“长双精度”没有精确表示100位数字的精度。因此,您看到的是“正确答案”-长双精度通常为80到128位,精度约为20+左右的十进制数字,远不及100。

长双精度”没有精确表示100位数字的精度准确地表示100位数字。因此,您看到的是“正确答案”-长双精度通常为80到128位,精度约为20+左右的十进制数字,远未接近100。

长双精度是由实现定义的,您需要检查您的系统的长双精度。然而,10^100太高了大到可以在不降低精度的情况下存储。

长双精度是实现定义的,您需要检查您的系统的长双精度。但是,10^100太大,无法在不降低精度的情况下存储。

计算机科学中的数字精度因通常无法表示实数而变化使用十进制(或二进制)形式的有限表示法。有两种近似形式的实数表示方法。第一种是定点数,其中整数部分有一定数量的位,小数部分有一定数量的位。C中唯一支持的定点数是整数(0个小数位)如果你想要更多,你必须管理好自己

另一类实数是浮点数…在这一类中,你有相对误差(这取决于数值的大小或大小,误差大小),所以…用十进制解释,当尾数有五位数字时,你会得到一个
0.00001*_数
误差或
0.001%
误差


如果试图将
10^100
表示为一个整数,那么需要大约300位来表示这样一个大的数字,因此不可能完全使用C中允许的基本类型(即使是
long
,如果应该支持的话,也太小而不允许这样一个数字)。如果你试图用普通的
double
类型来表示它,你会得到一个误差(
0.000000000000001%
超过结果的大小,误差)

计算机科学中的数字精度是不同的,因为通常你不能用十进制(或二进制)的有限表示来表示实数形式。有两种近似形式的实数表示方法。第一种是固定点数字,其中整数部分有一定数量的位,小数部分有一定数量的位。C中唯一支持的固定点数字是整数(含0个小数位)。如果您想要更多,您必须自己管理

另一类实数是浮点数…在这一类中,你有相对误差(这取决于数值的大小或大小,误差大小),所以…用十进制解释,当尾数有五位数字时,你会得到一个
0.00001*_数
误差或
0.001%
误差



如果试图将
10^100
表示为一个整数,那么需要大约300位来表示这样一个大的数字,因此不可能完全使用C中允许的基本类型(即使是
long
,如果应该支持的话,也太小而不允许这样一个数字)。如果您尝试使用正常的
double
类型表示它,您将得到一个错误(
0.000000000000001%
超过结果的大小,即错误的大小)

你想计算什么?10^100?是的,我想要一个双变量,在C中保持10^100,那么这是正确的答案….你可以有两种类型
long double
。它应该是
double
long double不能准确地表示所有值。重复的乘法会导致累积误差值。累积误差为在10000000000000000000000000.000000左右可见,下一个值为:9999999999999999731564544.000000。这些值通过以下乘法继续发散。您想计算什么?10^100?是的,我想要一个双变量,在CW中保持10^100,这是正确的答案….?您可以有两种类型
long double
。它应该是
double
long double不能准确地表示所有值。重复乘法会导致累积误差值。累积误差在10000000000000000000000000.000000左右可见,下一个值是:9999999999999999731564544.000000。这些值继续通过以下各项发散:ng乘法。我不知道精度实际上意味着什么,所以使用长双精度只能正确接近10^20???@AmoghMishra它实际上是实现定义的。在您可能使用的x86上,您将得到接近18-19的值。@AmoghMishra,还记得科学记法吗?这是浮点十进制。这是floating点二进制。精度是指您报告的位数。使用长双精度,它大约是20。因此您可以表示一个数字(几乎)任意高,但你只能得到20位最有效的数字;之后的所有数字都将不精确。这正是你在上面看到的行为。谢谢。你们能告诉我小数点后长双位数的精度限制是多少吗?我不知道精度的实际含义,所以我们只能接近10^20正确使用长双精度???@AmoghMishra它实际上是实现定义的。在您可能使用的x86上,您将得到接近18-19的结果。@AmoghMishra
int i;
long double y=1,z=10;
for(i=1;i<=100;i++)
{
  y=y*z;
}
  printf("%Lf\n",y);