c - 如何验证实数

标签 c

我需要一个表单来验证数字,它只允许用户输入整数、负数和小数。有没有用这段代码制作的表格?

我尝试使用 scanf 获取值,因为它们是一串字符,然后使用函数 atoi,我将结果字符串转换为数字值,然后将其赋予变量,问题是它返回只有整个值,没有小数,但由于某些原因,负数没有问题,这是我现在拥有的代码 ACSII 之后的代码:

do{ //Entry of data
    printf("introduce a real number: ");
    scanf("%s", chain);
    valid=validate_numbers(chain);
}while(valid==0);

N=atoi(chain);

例如,如果我尝试将“34.52”放入程序中,它应该将该确切值返回给变量 N,但它会将字符串转换为“34.00”。

https://pastebin.com/J5sk07py这是完整的代码。

最佳答案

atoi(3) 中的i表示整数。这意味着您要将字符串转换为整数,如您所见,它没有小数部分。使用 strtof(3)strtod(3)分别获得 floatdouble

关于c - 如何验证实数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58021326/

相关文章:

c - 将 m5ops.h 链接到 C 项目

c - 如何检查数组中的相同值?

c++ - 是否可以将每个 if-else 结构替换为等效的条件表达式?

c - 手动矢量化 C 代码的最佳方法

c - 返回字符串数组并将其分配给 C 中的变量

c - 返回 C 数组时的财富?

c - 为什么我不能在这里插入一个断点(我可能会添加我所有的 friend 都可以,但我没有其他方法可以解决这个问题)

c - 使用 usbd_core.c 检测 USB 设备何时断开连接

c - 错误 : ‘AES_BLOCK_SIZE’ undeclared. 无法在 Linux 中使用 C 编译 OpenSSL

c - 打印具有不同递减数字的星形 (*) 图案