the*_*sys 1 c++ floating-point floating-accuracy
我目前正在编写一个需要高精度浮点数的软件.有时候我需要的精确度比double能给我的更精确.我知道为什么经典的浮点数只能达到有限的精度.
我正在考虑这个问题,并有想法用它string来表示数字并用它们进行计算.
string number_one = "12.3459233547343432";
string number_two = "738.67632487523747384";
string sum = sum_strings(number_one, number_two);
cout << sum << endl; // 751.0222482299717...
Run Code Online (Sandbox Code Playgroud)
sum_strings然后该函数将执行添加,就像我们在小学中学到的一样(只有浮点数):
减产将以同样的方式运作.乘法和除法会更复杂,但它也会起作用.
我认为理论上你可以获得所需的精度(有足够的RAM来存储字符串).
我的问题是:
这会慢得多,因为您将使用完整的char来处理单个数据,并且您执行的操作将完全无法使用硬件实现的算术运算.更好的方法是设计一个任意长度的二进制格式.请参阅https://gmplib.org.还有很多其他选择.