自行实现字符串转浮点数函数atof()

news2024/11/29 22:48:08

【重复造轮子的原因】

尽管atof是标准C中自带的函数,用于将字符串转为浮点数,但是在某些环境下有可能没法使用的(例如CUDA环境中,没有atof函数,但是math.h可以使用),因此自行实现。

【通过的测试用例】

【实现的代码】

#include <stdio.h>
#include <math.h>
#include <assert.h>

//自己实现字符串转浮点数,可用于某些自带atof()使用不了的环境(例如CUDA的核函数中)
double my_atof(const char *str);

//两个double是否相同(模糊比较)
bool isFuzzyEqual(double a, double b)
{
    double min  = fmin(fabs(a), fabs(b));
    double dif = fabs(a - b);
    return (dif * 1.0E12 <= min);
}

int main()
{
    assert(isFuzzyEqual(my_atof("123.456"),     123.456));
    assert(isFuzzyEqual(my_atof("0123.456"),    123.456));
    assert(isFuzzyEqual(my_atof("+123.456"),    123.456));
    assert(isFuzzyEqual(my_atof("123.456 abc"), 123.456));
    asser

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux(rhel7)内核参数优化

内核参数 Linux sysctl.d 配置内核参数 rhel7中sysctl.d和sysctl.conf的执行顺序 执行顺序&#xff1a; sysctl.d > /etc/sysctl.conf sysctl.d的执行顺序&#xff1a; /etc/sysctl.d/run/sysctl.d/usr/local/lib/sysctl.d/usr/lib/sysctl.d/lib/sysctl.d/ 对于不同目录下…

交换排序——冒泡排序、快速排序

交换排序就是通过比较交换实现排序。分冒泡排序和快速排序两种。 一、冒泡排序&#xff1a; 1、简述 顾名思义就是大的就冒头&#xff0c;换位置。 通过多次重复比较、交换相邻记录而实现排序&#xff1b;每一趟的效果都是将当前键值最大的记录换到最后。 冒泡排序算法的原…

如何关闭一个tcp连接 阻塞和等待的区别 b树查找的过程

如何关闭一个 TCP 连接 可能大家第一反应是「杀掉进程」不就行了吗&#xff1f; 是的&#xff0c;这个是最粗暴的方式&#xff0c;杀掉客户端进程和服务端进程影响的范围会有所不同&#xff1a; • 在客户端杀掉进程的话&#xff0c;就会发送 FIN 报文&#xff0c;来断开这个客…

企业网络小实验-MUX-Vlan(NAT)

路漫漫其修远兮&#xff0c;吾将上下而求索 直接上实验 实验说明 模拟公司的部门实验&#xff0c; &#xff08;1&#xff09;公司主机如图所示&#xff0c;配置DNS服务器&#xff0c;配置NAT地址转换&#xff08;使用easy-ip的形式&#xff09;访问外网。 &#xff08;2&…

基于SSM的家政服务网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ARM架构之寄存器

CPU进行数据运算和逻辑运算 寄存器 概念 寄存器是处理器内部的存储器&#xff0c;没有地址 作用 一般用于暂时存放参与运算的数据和运算结果 分类 包括通用寄存器、专用寄存器、控制寄存器 C语言中四种存储类型的详解 一、auto存储类型 用auto存储类型说明的变量都是局部于…

单片机有哪些分类?

单片机有哪些分类? 1.AVR单片机-----速度快&#xff0c;一个时钟周期执行一条指令&#xff0c;而普通的51单片机需要12个时钟周期执行一条指令。当然&#xff0c;Atmel公司出品的AT89LP系列单片机也是一个时钟执行一条指令&#xff0c;但目前还未普及。AVR单片机比51单片机多…

2023年全国大学生数学建模B题

多波束测线问题 1.问题提出 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c;在不同界面上产生反射&#xff0c;利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信号&#xff0c;并记录从声波发射到信号接…

显示器配置信息删除

显示器配置信息删除 1 介绍2 操作参考 1 介绍 笔记本屏幕坏了&#xff0c;手头的拓展显示器都是配置成拓展显示&#xff0c;需要先找一台没配置过的显示器将系统中显示器配置信息删除&#xff0c;这样就能复制屏幕显示到拓展屏幕上了。 2 操作 Windows 的显示器配置位于注册…

go语言基本操作---六

并发编程 并行&#xff1a;指在同一时刻&#xff0c;有多条指令在多个处理器上同时执行。 并发&#xff1a;指在同一时刻只能有一条指令执行&#xff0c;但是多个进程指令被快速的轮换执行&#xff0c;使得在宏观上具有多个进程同时执行的效果&#xff0c;但在微观上并不是同时…

机器学习——逻辑回归(LR)

机器学习——逻辑回归&#xff08;LR&#xff09; 文章目录 前言一、原理介绍二、代码实现2.2. 混淆矩阵2.3. 分类报告2.4. 可视化分类结果 三、额外&#xff08;先划分数据集再降维与先降维再划分数据集&#xff09;3.1. 先划分数据集再降维3.2. 先降维再划分数据集3.3. 比较 …

2023数学建模国赛选题建议及BC题思路

大家好呀&#xff0c;全国大学生数学建模竞赛今天下午开赛啦&#xff0c;在这里先带来初步的选题建议及思路。 目前团队正在写B题和C题完整论文&#xff0c;后续还会持续更新哈&#xff0c;以下只是比较简略的图文版讲解&#xff0c;团队目前正在写B、C题完整论文&#xff0c;…

【C语言】进阶——深度剖析数据的存储

目录 1.数据类型 &#x1f43b;整型分类 2.整型在内存中的存储 &#x1f43b;2.1原码&#xff0c;反码&#xff0c;补码 &#x1f43b;2.2大小端介绍 3.浮点数在内存中的存储 1.数据类型 使用不同类型开辟内存空间的大小不同&#xff08;大小决定了使用范围&#xff09…

jmeter系列-测试计划详细介绍(3)

测试计划的作用 测试计划描述了 Jmeter 在执行时&#xff0c;一系列的步骤一个完整的测试计划包含了一个或多个【线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素】 Jmeter原件和组件的介绍 基本元件的介绍 多个类似功能组件的 容器&#xff08;类似于类&…

第四节唯物辩证法(两大总特征)

新旧事物与时间无关&#xff0c;与是否合乎历史方向有关&#xff0c;如有些00后思想可能落后与80后

【C++】内联函数讲解和关键字inline纯干货简介

今日翻看《C Primer Plus》&#xff0c;看到一个陌生的东西--内联函数&#xff0c;立马前来记录一下。 内联函数和常规函数区别 为了明白内联函数和常规函数的区别&#xff0c;首先需要知道程序运行时&#xff0c;遇到常规函数时如何处理的&#xff1a; 编译过程的最终产品时…

python+django青少年心理健康测评分析与预警的设计与实现vue

本青少年心理健康测评分析与预警主要包括二大功能模块&#xff0c;即用户功能模块和管理员功能模块。 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员功能来管理后台系统。主要功能有&#xff1a;首…

记LGSVL本地编译记录

主要的编译参考来着官方文件 Unity安装 安装unity hub 安装2020.3.3f1在unity hub上 但是我发现没有2020.3.3f1&#xff0c;只有2020.3.3f1c1&#xff0c;其实c1就是中国版&#xff0c;没有什么影响 GIT安装 安装GIT安装Git LFS验证git-lfs(输出Git LFS initialized就&am…

【代码随想录】Day 50 动态规划11 (买卖股票Ⅲ、Ⅳ)

买卖股票Ⅲ https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/ 无语了。。。 写的很好就是怎么都过不了。。。 还是就用代码随想录的写法吧。。。 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector&…

雅思写作 三小时浓缩学习顾家北 笔记总结(五)

目录 饥饿网100句翻译练习 Many girls are unwilling to seek employment in male-dominated industries. Many girls are not willing to find jobs in male-dominated industries. The main function of schools is to impart knowledge to the next generation. The ar…