gpt4 book ai didi

c - 如何检查字符串是否可以转换为 float ?

转载 作者:行者123 更新时间:2023-12-01 13:55:56 25 4
gpt4 key购买 nike

首先,我的上下文是编译器作者的上下文,他需要将浮点文字(字符串)转换为浮点/ double 值。在过去的 15 年里我没有做过任何浮点编程,所以我很确定这是一个完全愚蠢的新手问题。

double res; 
errno=0;
*res = strtod((const char*)literal,NULL);
if (errno==ERANGE) throw_a_literal_out_of_range_exception();
return res;

但是c运行库中没有“strtof”函数?

编辑:澄清。我已经知道字符串 'literal' 是 C float 的有效模式。它已经通过了正则表达式测试。我只想检查是否存在范围/精度问题。

原因是用户可以在 Eiffel 源代码中编写

a := {REAL_32} 3.1415
b := {REAL_32} 3.0E200

将写入的 float 转换为 32 位 float 。我认为在第二种情况下,编译器应该检测到该值超出范围并引发错误或至少是警告。

最佳答案

在 C89 中你可以使用 sscanf。

例如:

float myfloat;

if(sscanf(str, "%f", &myfloat) != 1)
/* String could not be converted */
else
/* String was converted, myfloat is usable */

关于c - 如何检查字符串是否可以转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com