尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

atof() - 字符串转double类型

atof() - 字符串转double类型
📅 发布时间:2026/6/18 15:36:38

引言

atof() 函数是 C 标准库中用于将字符串(ASCII 字符串)转换为双精度浮点数(double 类型) 的函数,其名称来源于 “ASCII to Float” 的缩写,主要用于处理包含小数或科学计数法的字符串。

一、基本信息

函数原型

#include <stdlib.h>  // 必须包含的头文件
double atof(const char *str);
/*
参数 str:指向待转换的字符串的指针(字符串需符合浮点数格式,如 "3.14"、"-123.45"、"1e3" 等)。
返回值:转换后的 double 类型浮点数;若转换失败(如字符串无有效浮点数),则返回 0.0。
*/

核心功能

将符合浮点数格式的字符串转换为对应的 double 数值,支持:

  • 整数部分(如 "123")、小数部分(如 "123.45");
  • 正负号(如 "-123.45"、"+67.89");
  • 科学计数法(如 "1e3" 表示 1×10³,"2.5e-2" 表示 2.5×10⁻²);
  • 忽略字符串开头的空白字符(空格、制表符 \t、换行符 \n 等)。

二、转换示例

输入字符串 转换结果(double) 说明
"3.14" 3.14 基本小数格式
"-123.45" -123.45 带负号的小数
" +67.89abc" 67.89 忽略开头空白和正号,遇到 'a' 停止
"123" 123.0 整数自动转换为浮点数
"1e3" 1000.0 科学计数法(1×10³)
"2.5e-2" 0.025 带小数的科学计数法(2.5×10⁻²)
"abc1.23" 0.0 非数字开头,转换失败
""(空字符串) 0.0 无有效字符,转换失败

三、代码示例

#include <stdio.h>
#include <stdlib.h>  // 包含 atof() 的头文件int main() 
{char str1[] = "3.14159";       // 基本小数char str2[] = "-123.456";      // 带负号的小数char str3[] = "  +78.9e2";     // 带空白、正号和科学计数法char str4[] = "abc0.123";      // 非数字开头char str5[] = "123.45abc";     // 数字后带非数字字符printf("atof(\"%s\") = %.5f\n", str1, atof(str1));  // 3.14159printf("atof(\"%s\") = %.3f\n", str2, atof(str2));  // -123.456printf("atof(\"%s\") = %.1f\n", str3, atof(str3));  // 7890.0(78.9×10²)printf("atof(\"%s\") = %.3f\n", str4, atof(str4));  // 0.000(转换失败)printf("atof(\"%s\") = %.2f\n", str5, atof(str5));  // 123.45(遇到 'a' 停止)return 0;
}

四、与 strtod() 的对比

atof() 是 strtod() 的简化版本,两者的核心差异如下:

特性 atof(const char *str) strtod(const char *str, char **endptr)
错误处理 无(失败返回 0.0,无法区分有效 0.0) 可通过 endptr 判断转换终止位置
数值范围 支持 double,溢出未定义 支持 double,溢出返回 HUGE_VAL 等
格式支持 仅十进制浮点数(含科学计数法) 支持十进制、十六进制浮点数(如 "0x1.2p3")

相关新闻

  • 深入解析:解密llama.cpp:从Prompt到Response的完整技术流程剖析
  • 详细介绍:深圳比斯特|电池组PACK自动化生产线厂家概述
  • 密码学学习记录(三)

最新新闻

  • 2026高速冷冻离心机高品质制造厂商:全流程质检保障离心转速精度 - 品牌推荐大师
  • 05 | 一不小心就死锁了,怎么办?
  • 网课记笔记写论文刷题,哪些学生平板推荐能覆盖全部学习场景? - 资讯速览
  • 基于Springboot2+vue2的高校办公室行政事务管理系统
  • 百度网盘下载神器pdown:免登录高速下载终极指南
  • 广州二手包包变现避坑指南 全渠道实测,优质回收品牌实力盘点 - 奢侈品回收测评

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号