c - 指数数在 C 中如何工作

标签 c

以下使用指数数的代码的输出为 1.#INF00 -33.000000 0.000000。怎么办?

#include<stdio.h>
int main()
{
    float p=3.5e38f;
    float n=-3.3e1f;
    float m=1.0e-38f;
    printf("%f %f %f",p,n,m);
}

最佳答案

你确实需要学习基础知识。在 Google 上搜索“ float 如何工作”将是一个好的开始。

http://en.wikipedia.org/wiki/IEEE_floating_point

简单来说,第一个数字溢出到“无穷大”(INF)。第二个是 10 的 1 次方的 3.3 倍。第三个下溢为零。

关于c - 指数数在 C 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13834546/

相关文章:

c++ - 我如何在 fork() 中使用 execl() 并杀死它

c - 使用系统单调时钟分析相对 C 代码执行时间

c - Wait() 导致程序在打开 FIFO 命名管道时暂停

c - Linux C : upon receiving a signal, 是否可以知道发送者的PID?

c - 为什么会出现运行时错误?代码仍然给我正确的输出

c - 仅使用 bool 运算符如何知道二进制数是否为负数?

c - C语言中如何识别一个对象

c - 数组指针的初始化

c - 格式与文件内容不匹配时 fscanf 的行为

c - 结构和字符串问题