C++中无内置根号运算符,需用中sqrt()计算平方根(如sqrt(16.0)得4.0),或以Unicode“√”(\u221A)仅作显示。
在 C++ 程序中,**无法直接“打出来”根号符号(√)作为数学运算符**——C++ 本身没有内置的 √ 字符运算符;你看到的根号,要么是输出时用 Unicode 字符 √ 显示(纯文本/界面展示),要么是调用开方函数计算数值结果。
sqrt() 计算平方根这是最常用、最正确的做法:用标准库函数求值,而不是“画根号”。sqrt() 在 中声明,支持 double、float、long double 版本。
#include
NaN(或触发域错误,取决于编译器和浮点环境)sqrt(25
.0) 或 sqrt(static_cast(25)) ,否则可能误调用其他重载或编译失败double x = sqrt(16.0); // x == 4.0
仅用于控制台显示、调试打印或简单界面(如终端程序),不参与计算。注意:能否正常显示取决于终端/字体是否支持 UTF-8 和 Unicode 字符。
'√' 是可行的,但需确保源文件保存为 UTF-8 编码,且编译器支持(GCC/Clang 默认支持,MSVC 需加 /utf-8)"\u221A"(UTF-8 字符串字面量)或 L"\u221A"(宽字符)std::cout << "√" << 16 << " = " << sqrt(16.0) << std::endl; // 输出:√16 = 4
SetConsoleOutputCP(CP_UTF8)(Windows API),否则显示乱码√ 当运算符写表达式C++ 的词法分析器不认识 √,它不是合法运算符,也不是预定义宏。试图写 √25 会直接报错:
error: use of undeclared identifier '√'(Clang)error: '√' was not declared in this scope(GCC)#define √ sqrt,也会因 C++ 预处理器不处理 Unicode 标识符而失败(除非编译器特别扩展,不具可移植性)真正要小心的是混淆“视觉表示”和“计算行为”——显示 √ 是为了人看,调用 sqrt() 才是让机器算。终端能不能正确渲染 √,远比怎么写它更容易出问题。