问题标签 [cmath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 理解 C++ 中的浮点变量和运算符(也可能是书本错误)
我正在学习一个开始的 C++ 类,而我的书(Starting Out with C++ Early Objects 7th edition)有一个非常糟糕的例子来说明如何检查浮点变量的值。
有问题的书籍示例(文件名 pr4-04.cpp):
我在 Ubuntu 中使用 g++ 来编译我的代码,如下所示:
我得到这个错误:
我可以通过将 abs() 更改为 fabs() 来解决这个问题,但这仍然非常令人困惑!为什么这本书给了我们无法编译的东西,或者这只是我?为什么“结果”的 cout 给出 4 而不是 4.000002?为什么这个值在 if{} 语句中使用时似乎会发生变化?
我知道我们不能只使用 == 来检查等价,但是为什么我需要使用绝对值呢?无论我是否使用它,我都会得到相同的答案。那么有什么意义呢?
更不用说,这似乎是检查浮点等价的一种非常糟糕的方法。有一个更好的方法吗?这个话题似乎非常重要。
我在stackoverflow上找到了这个主题,但是他们的解决方案:
就我的 4 章 C++ 经验而言,这对我来说没有多大意义。我将不胜感激一些帮助。我们的书给了我多达 6 句话来解释这一切。
编辑:根据一些人的建议,我试图找到一个勘误页面,但是在搜索教科书、互联网和我的课程网站 30 分钟后,我只能找到这个需要登录的可下载 zip 文件-_-
我也完美地复制了代码。那不是我的错字,我直接从带有代码的 CD 上复制了它。书中也是这样打的。
python - 是否有与 Python 的 cmath.rect 等效的 Matlab?
是否有一个与 Pythons 等效的 Matlab ,它返回带有极坐标cmath.rect(r, phi)
的复数,而无需求助于x
r
phi
?
c++ - 为什么我从 cmath.h 中得到数百个语法错误?
我正在使用 OpenGL 在 C++ 中做一个项目,并且不断受到来自 cmath.h 的数百个语法错误的影响。主要的难题是我什至根本没有提到或包括 cmath。我在一两件事上使用了 math.h,但在我进行最近的更改之前,该代码运行良好。回到以前工作的代码现在显示相同的错误,所以我有点难过从哪里开始寻找。
我是否遗漏了一些非常明显的东西,或者这可能是 Visual Studio 10 的问题?
c++ - 无法弄清楚如何总是从较大的数字中减去较小的数字
我有整个程序,除了它总是从较大的数字中减去较小的数字的部分。我一直试图找到它,但我找不到任何可以帮助我的东西。这是我唯一需要帮助的部分。
这是代码。
c++ - 无法使用 square() 函数 c++
我是 C++ 新手,我正在使用 Bjarne Stroustrup 的《Programming Principles and Practice Using C++》一书(我将在未来的学校课程中使用这本书)。本书中的代码示例使用了std_lib_facilities.h。在某些时候,这本书会调用 function square()
,但是当我这样做时,会出现以下错误:
另一方面,我可以使用该sqrt()
功能...我确实包含std_lib_facilities.h
,而那个包含cmath
,所以我认为这不是问题吗?
我应该怎么做才能使用该square()
功能?
c++ - GCC C++ pow 精度
所以我参加了一场计算比赛,我注意到了一个奇怪的错误。pow(26,2) 总是返回 675,有时返回 674?即使正确答案是 676。这类错误也会发生在 pow(26,3)、pow(26,4) 等上。经过比赛后的一些调试,我相信答案与 int 向下舍入的事实有关。有趣的是,我以前从未发生过这种错误。我的计算机在 Windows 8 上运行 mingw。GCC 版本相当新,我相信 2-3 个月大。但我发现,如果我将 o1/o2/o3 优化标志打开,这些错误会奇迹般地消失。pow(26,2) 总是会得到 676 又名正确答案 谁能解释为什么?
双打的结果很奇怪。
python - python scipy leastsq 适合复数
我有一个复数数据集,我希望能够找到最适合数据的参数。你能用 Python 中的 scipy 实现的 minimumsq 来拟合复数中的数据吗?
例如,我的代码是这样的:
但是,residuals
不喜欢使用我的复数,我收到错误:
我猜我只需要使用浮点数/双精度数而不是复数。在这种情况下,我如何分别评估真实和复杂的部分,然后将它们重新组合成一个单一的错误度量residuals
以返回?
c++ - std::cbrt 的舍入错误?
我想知道是否应该将以下内容报告为标准库的 gcc 实现中的错误。
对于所有无符号整数i
,如果我们与整数int(std::sqrt(i))
的实际平方根进行比较,转换总是会给出好的结果。如果我们对它做同样的std::cbrt
事情,情况并非如此:
您认为应该将其报告为缺陷吗?
visual-c++ - MSVC 上的 std::isfinite
C++11 和 C11 标准定义了
std::isfinite
函数。Visual Studio 2012 似乎没有将其作为
cmath
or的一部分提供,
math.h
但似乎提供了此功能。amp_math.h
isfinite
可以互换吗std::isfinite
?该文档没有讨论调用时的行为,NAN
并且我没有 VS 编译器来测试它。
c++ - 为什么 cmath 不使用模板和/或重载
TR1 在 C++11 中引入的许多新函数都有丑陋的类似 C 的签名。例如,引用 Boost 的 TR1 文档(http://www.boost.org/doc/libs/1_52_0/doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.special):
显然,人们会更喜欢一些模板化的实现(这实际上是 Boost 中这些函数的“本机”签名),或者至少是一些重载而不是几个标识符。
我可以理解,以 C 兼容性为目标意味着支持这些标识符,但这对于纯 C++ 使用者来说是一件麻烦事。除了<cmath>
,可能还有一些<math>
,具有更自然的界面。
我错过了什么(可能除了一些以前提出的问题)?