C++ C++;用于高精度浮点数的类型

C++ C++;用于高精度浮点数的类型,c++,math,precision,mpfr,C++,Math,Precision,Mpfr,我们在数据类型方面遇到了严重问题。 对于C++中的数据类型,我有很大的问题。 我必须处理100位数的数字。 我一直在尝试使用mpfr real,但编译器总是崩溃 #include <iostream> #include <gmp.h> #include <mpfr.h> mpfr::real Modulo(mpfr::mpreal number); int main() { mpfr::mpreal test, number; number = 3

我们在数据类型方面遇到了严重问题。 对于C++中的数据类型,我有很大的问题。 我必须处理100位数的数字。 我一直在尝试使用mpfr real,但编译器总是崩溃

#include <iostream>
#include <gmp.h>
#include <mpfr.h>

mpfr::real Modulo(mpfr::mpreal number);

int main()
{
  mpfr::mpreal test, number;
  number = 3.14159;
  mpfr::mpreal::getPrecision(500)
  mpfr::mpreal  a = "-1";
  mpfr::mpreal  prime = "57896044618658097711785492504343953926634992332820282019728792003956564819949";
  mpfr::mpreal  d = "-121665/121666";

  test=Modulo(number);

}

mpfr::mpreal:: Modulo(mpfr::mpreal number)
{
 extern mpfr::mpreal a , d, prime;
 a = d;
 std::cout << prime;
 return number;
}
real.hpp:

#include <iostream>
#include <gmp.h>
#include "real.hpp"

  mpfr::real test, number;
  number = 3.14159;
  mpfr::real::getPrecision(500)
  mpfr::real  a = "-1";
  mpfr::real  prime = "57896044618658097711785492504343953926634992332820282019728792003956564819949";
  mpfr::real  d = "-121665/121666";
#包括
#包括
#包括“real.hpp”
mpfr::真实测试,数字;
数字=3.14159;
mpfr::real::getPrecision(500)
mpfr::real a=“-1”;
mpfr::real prime=“57896044618658097711785492504343953926634992332820282019728792003956564819949”;
mpfr::real d=“-121665/121666”;
与另一个示例中的结构相同,但现在有另一个声明和更多错误:

Compiling: main.cpp
/home/tamwyn/evaluate/main.cpp:5:1: error: invalid use of template-name ‘mpfr::real’ without an argument list
/home/tamwyn/evaluate/main.cpp: In function ‘int main()’:
/home/tamwyn/evaluate/main.cpp:9:14: error: missing template arguments before ‘test’
/home/tamwyn/evaluate/main.cpp:9:14: error: expected ‘;’ before ‘test’
/home/tamwyn/evaluate/main.cpp:10:3: error: ‘number’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp:11:9: error: ‘template<long int _prec, mpfr_rnd_t _rnd> class mpfr::real’ used without template parameters
/home/tamwyn/evaluate/main.cpp:12:3: error: expected ‘;’ before ‘mpfr’
/home/tamwyn/evaluate/main.cpp:13:15: error: missing template arguments before ‘prime’
/home/tamwyn/evaluate/main.cpp:13:15: error: expected ‘;’ before ‘prime’
/home/tamwyn/evaluate/main.cpp:14:15: error: missing template arguments before ‘d’
/home/tamwyn/evaluate/main.cpp:14:15: error: expected ‘;’ before ‘d’
/home/tamwyn/evaluate/main.cpp:16:3: error: ‘test’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp:16:21: error: ‘Modulo’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp: At global scope:
/home/tamwyn/evaluate/main.cpp:20:1: error: invalid use of template-name ‘mpfr::real’ without an argument list
编译:main.cpp /home/tamwyn/evaluate/main.cpp:5:1:错误:在没有参数列表的情况下,模板名“mpfr::real”的使用无效 /home/tamwyn/evaluate/main.cpp:在函数“int main()”中: /home/tamwyn/evaluate/main.cpp:9:14:错误:“测试”之前缺少模板参数 /home/tamwyn/evaluate/main.cpp:9:14:错误:应为“;”“测试”前 /home/tamwyn/evaluate/main.cpp:10:3:错误:未在此作用域中声明“number” /home/tamwyn/evaluate/main.cpp:11:9:错误:“模板类mpfr::real”未使用模板参数 /home/tamwyn/evaluate/main.cpp:12:3:错误:应为“;”在“mpfr”之前 /home/tamwyn/evaluate/main.cpp:13:15:错误:“prime”之前缺少模板参数 /home/tamwyn/evaluate/main.cpp:13:15:错误:应为“;”在“prime”之前 /home/tamwyn/evaluate/main.cpp:14:15:错误:“d”之前缺少模板参数 /home/tamwyn/evaluate/main.cpp:14:15:错误:应为“;”在“d”之前 /home/tamwyn/evaluate/main.cpp:16:3:错误:未在此作用域中声明“test” /home/tamwyn/evaluate/main.cpp:16:21:错误:未在此作用域中声明“Modulo” /home/tamwyn/evaluate/main.cpp:在全局范围内: /home/tamwyn/evaluate/main.cpp:20:1:错误:在没有参数列表的情况下,模板名“mpfr::real”的使用无效 您有什么建议,对于这样或更长的数字,应该使用哪种类型? 我找到了几个mpfr,但总是有相同的问题。

供使用
\35;包括


我怀疑编译器“崩溃”,我打赌它会给您带来特定的错误。你能分享准确的错误信息吗?你能试着创建一个包含你的问题,编辑你的问题以包含这些问题吗。您还可以提供问题中代码的准确、完整和未修改的错误输出吗?还请提供您使用的编译器和编译方式。我使用gnu gcc编译器(ubuntu上的g++编译器)。编译器由代码块调用。mpfr.h不包含mpfr命名空间。看起来您希望将其包括在内。我使用了这个例子,今天晚上,我将尝试从Scarch开始再次使用这个例子,如果我有结果,我会再次更新页面,或者至少关闭它,谢谢你的帮助。
Compiling: main.cpp
/home/tamwyn/evaluate/main.cpp:5:1: error: invalid use of template-name ‘mpfr::real’ without an argument list
/home/tamwyn/evaluate/main.cpp: In function ‘int main()’:
/home/tamwyn/evaluate/main.cpp:9:14: error: missing template arguments before ‘test’
/home/tamwyn/evaluate/main.cpp:9:14: error: expected ‘;’ before ‘test’
/home/tamwyn/evaluate/main.cpp:10:3: error: ‘number’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp:11:9: error: ‘template<long int _prec, mpfr_rnd_t _rnd> class mpfr::real’ used without template parameters
/home/tamwyn/evaluate/main.cpp:12:3: error: expected ‘;’ before ‘mpfr’
/home/tamwyn/evaluate/main.cpp:13:15: error: missing template arguments before ‘prime’
/home/tamwyn/evaluate/main.cpp:13:15: error: expected ‘;’ before ‘prime’
/home/tamwyn/evaluate/main.cpp:14:15: error: missing template arguments before ‘d’
/home/tamwyn/evaluate/main.cpp:14:15: error: expected ‘;’ before ‘d’
/home/tamwyn/evaluate/main.cpp:16:3: error: ‘test’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp:16:21: error: ‘Modulo’ was not declared in this scope
/home/tamwyn/evaluate/main.cpp: At global scope:
/home/tamwyn/evaluate/main.cpp:20:1: error: invalid use of template-name ‘mpfr::real’ without an argument list