如何将变量分配给用 <gmp.h> 声明的变量
How to assign a variable to the variables decalred with <gmp.h>
我最近使用了一个库 <gmp.h>
,但我很难为我声明的变量 mpf_t x
赋值。我使用 mpf_init2 (x,256)
来初始化它,当我使用 x=1.234029187340918239082372984509283475029845702
我得到
highprecision.cc:7:7: error: incompatible types in assignment of ‘double’ to ‘mpf_t’ {aka ‘__mpf_struct [1]’}
7 | x=1.234029187340918239082372984509283475029845702;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个错误。知道为什么吗?顺便说一句,我正在使用 C++17 GCC。纪录片也很混乱。对不起。
mpf_set_d(x, 1.234029187340918239082372984509283475029845702);
也许阅读文档会有帮助?
顺便说一句,如果您认为您将在 double
文字中获得 256 位精度,那您就错了。 1.234029187340918239082372984509283475029845702
在您的系统上仍将具有双精度的常规精度(通常约为 17 到 19 位数字)。
我最近使用了一个库 <gmp.h>
,但我很难为我声明的变量 mpf_t x
赋值。我使用 mpf_init2 (x,256)
来初始化它,当我使用 x=1.234029187340918239082372984509283475029845702
我得到
highprecision.cc:7:7: error: incompatible types in assignment of ‘double’ to ‘mpf_t’ {aka ‘__mpf_struct [1]’}
7 | x=1.234029187340918239082372984509283475029845702;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个错误。知道为什么吗?顺便说一句,我正在使用 C++17 GCC。纪录片也很混乱。对不起。
mpf_set_d(x, 1.234029187340918239082372984509283475029845702);
也许阅读文档会有帮助?
顺便说一句,如果您认为您将在 double
文字中获得 256 位精度,那您就错了。 1.234029187340918239082372984509283475029845702
在您的系统上仍将具有双精度的常规精度(通常约为 17 到 19 位数字)。