C语言常用数学函数及计算
#define _USE_MATH_DEFINES #include <stdio.h> #include <math.h> int main() { double x = 2.0; double y = 3.0; // 基本运算 printf("sqrt(%.1f) = %.2f\n", x, sqrt(x)); printf("pow(%.1f, %.1f) = %.2f\n", x, y, pow(x, y)); printf("exp(%.1f) = %.2f\n", x, exp(x)); printf("log(%.1f) = %.2f\n", x, log(x)); printf("log10(%.1f) = %.2f\n", x, log10(x)); // 三角函数 double angle = M_PI / 4; // 45 degrees 圆周率 π printf("sin(%.2f) = %.2f\n", angle, sin(angle)); printf("cos(%.2f) = %.2f\n", angle, cos(angle)); printf("tan(%.2f) = %.2f\n", angle, tan(angle)); // 舍入函数 double z = 5.8; printf("ceil(%.1f) = %.1f\n", z, ceil(z)); printf("floor(%.1f) = %.1f\n", z, floor(z)); printf("fabs(%.1f) = %.1f\n", z, fabs(z)); return 0; }
问题: 使用C++编译,已经用#include <cmath>包含了头文件,但是在使用M_PI时依旧报错说未定义
原因: 在某些编译器中,<cmath> 库中的 M_PI 是一个条件宏,需要 _USE_MATH_DEFINES 宏被定义才能使用。
解决办法: 在第一行加上 _USE_MATH_DEFINES