0

0

C++ sqrt函数使用教程_C++平方根计算与异常处理

下次还敢

下次还敢

发布时间:2025-11-30 05:17:32

|

1172人浏览过

|

来源于php中文网

原创

C++中sqrt函数用于计算平方根,需包含头文件,支持浮点型和整型输入;传入负数会引发域错误,应提前判断非负性并检查NAN;浮点结果存在精度误差,建议使用EPSILON进行近似比较;通过输入验证与条件处理可实现安全的平方根计算。

c++ sqrt函数使用教程_c++平方根计算与异常处理

C++ 中的 sqrt 函数用于计算一个数的平方根,是数学运算中常用的函数之一。它定义在 头文件中,适用于浮点型和整型数据。本文将介绍如何正确使用 sqrt 函数,处理常见异常情况,并提供实用示例。

包含头文件与基本用法

要使用 sqrt 函数,必须包含标准数学库头文件 。函数原型如下:

double sqrt(double x);

支持 float、double 和 long double 类型,也可传入整数,会自动转换为 double。

示例代码:

立即学习C++免费学习笔记(深入)”;

#include 
#include 
using namespace std;

int main() { double num = 25.0; double result = sqrt(num); cout << "√" << num << " = " << result << endl; // 输出:√25 = 5 return 0; }

处理负数输入与域错误

sqrt 函数不允许对负数开平方。若传入负数,将产生域错误(domain error),返回 NAN(非数字)。

为了避免程序崩溃或输出异常结果,应提前判断输入是否非负。

Mureka
Mureka

Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。

下载

推荐做法:

  • 使用条件语句检查数值是否大于等于 0
  • 结合 std::isnan() 检查返回值是否有效

示例:

double num = -4.0;
if (num >= 0) {
    double result = sqrt(num);
    cout << "√" << num << " = " << result << endl;
} else {
    cout << "错误:不能对负数开平方根!" << endl;
}

浮点精度与比较技巧

由于浮点数存在精度误差,直接比较 sqrt 结果可能不准确。例如,sqrt(2) 是无限小数,存储时会被截断。

建议使用误差范围(epsilon)进行近似比较:

#include 
#include 
#include 

const double EPS = 1e-9; double val = sqrt(2) * sqrt(2); if (abs(val - 2.0) < EPS) { cout << "近似相等" << endl; }

完整示例:安全的平方根计算器

下面是一个带输入验证和异常提示的小程序

#include 
#include 
using namespace std;

int main() { double input; cout << "请输入一个非负数:"; cin >> input;

if (cin.fail()) {
    cout << "输入无效!请输入数字。" << endl;
    return 1;
}

if (input < 0) {
    cout << "无法计算负数的平方根。" << endl;
    return 1;
}

double root = sqrt(input);
cout << "√" << input << " ≈ " << root << endl;
return 0;

}

基本上就这些。掌握 sqrt 的使用和边界处理,能有效避免运行时错误,提升程序稳定性。注意始终验证输入并合理处理浮点精度问题。

相关专题

更多
css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

558

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

98

2025.10.23

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

279

2023.10.25

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

52

2025.08.29

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

98

2025.10.23

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

6

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

37

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

51

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.1万人学习

Excel 教程
Excel 教程

共162课时 | 11.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号