gpt4 book ai didi

python - Windows 7 cmd,来自 Visual Studio,不显示 float

转载 作者:行者123 更新时间:2023-11-28 00:03:01 29 4
gpt4 key购买 nike

在 Visual Studio 2015 中,我编写了一个计算圆周率的程序。 pi 的变量是 float(我不确定这是否真的有必要,但我想我也可以以防万一),无论如何......这是函数:

float pi(int accuracy) {
float pi = 3;
int nint = 2;
int next;
for (int i = 0; i < accuracy; i++) {
next = 4 / (nint * (nint + 1) * (nint + 2));
nint += 2;
if (i % 2 == 0) {
pi += next;
}
else {
pi -= next;
}
}
return pi;
}

据我所知,这应该返回一个 float 变量。当我调用它时,我使用 2000 作为参数,这应该返回 pi 的相当准确的表示。 Visual Studio 将此显示到 cmd,但不写入任何小数位,它只显示 3
然后我决定在 Python 中测试它。这是代码:

pi = 3
n_int = 2

# I'm using 1000 as the accuracy, because Python's slower.
for i in range(1000):
nextint = 4 / (n_int * (n_int + 1) * (n_int + 2))
n_int += 2
if i % 2 == 0:
pi += nextint
else:
pi -= nextint

print(pi)
input()

我用 Python 测试了它,因为这样有两种不同的数字输出方式。首先,我直接从 IDLE 运行它,它在 IDLE 窗口中显示输出。这显示 3.141592653340544(这并不完全准确,但在意料之中)。但是当我在 Windows 资源管理器中双击 Python 文件时(使其在 cmd 中打开),然后它只显示 3,就像 c++ 示例一样。
由此我可以相当有把握地说这是 cmd 的问题,也许我已经更改了一些设置或可能导致这种情况发生的事情(尽管我不记得这样做了)。
那么,在cmd中,如何显示 float 或长整数呢?

最佳答案

next = 4/(nint * (nint + 1) * (nint + 2));

(nint * (nint + 1) * (nint + 2)) 是一个 int。 4 是一个 int。通过删除小数部分(因为 int 没有小数部分),将两个 int 相除得到另一个 int

您应该将其更改为 4.04.0f 以使用浮点除法。

然后您应该将next 设为floatdouble,因为它需要存储的数字不是整数。

关于python - Windows 7 cmd,来自 Visual Studio,不显示 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498622/

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