gpt4 book ai didi

C++ 计算比 double 或 long double 更精确

转载 作者:可可西里 更新时间:2023-11-01 16:36:59 34 4
gpt4 key购买 nike

我正在自学 C++ 和 this practice question它要求编写可以将 PI 计算为 >30 位的代码。我了解到 double/long double 在我的电脑上都是 16 位数字。

我认为这个问题的教训是能够计算出超出可用范围的精度。因此,我该怎么做?可能吗?

我现在计算 Pi 的代码是

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;

int main(){

double pi;
pi = 4*atan(1.0);
cout<<setprecision(30)<<pi;
return 0;
}

输出到16位和pi到30位比较如下。

3.1415926535897931
3.141592653589793238462643383279

关于提高精度的任何建议,或者这是永远不会重要的事情?或者,如果您认为我应该在这里学习其他类(class),请随时提供。谢谢!

最佳答案

您将需要使用浮点以外的其他方法来执行计算。有一些库可以做“长数学”,例如 GMP .

如果这不是您要查找的内容,您也可以自己编写代码来执行此操作。最简单的方法是只使用一个字符串,并为每个字符存储一个数字。像在纸上手工计算一样计算。将数字加在一起相对容易,减法也是如此。做乘法和除法有点难。

对于非整数,您需要确保将小数点对齐以进行加法/减法...

写这个是一个很好的学习经历,但不要指望它是你在半小时内不假思索就敲出来的东西[也许加减法!]

关于C++ 计算比 double 或 long double 更精确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637621/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com