关于print("%f ",5)输出结果为0.000000

print("%f ",5)输出结果为0.000000
print("%,d ",5.01)输出1889785610 ,这两个输出的结果怎么理解,求指点

c++
0

4个回答

整数和浮点数的内部存储是不同的,你把整数当浮点数解析,比如5,那么阶码、尾数对应的数据存储都是0,所以结果是0
相反,5.01你当作整数去解析,那么阶码、尾数这些位都是有值的,所以结果是一个很大的整数。
具体你可以看IEEE 754浮点数规范。

2
1

http://blog.163.com/dsp_lnint/blog/static/10316743420103154327115/

看这个例子,同样0x00280000,如果理解为整数,它是十六进制的280000,一个很大的数
理解为浮点数是 3.6734198463196484624023016788195e-39 一个很小的数

0x00280000(real*4)

转换成二进制

00000000001010000000000000000000

符号位 指数部分(8位) 尾数部分

0 00000000 01010000000000000000000

符号位=0;因指数部分=0,则:尾数部分M为m:

0.01010000000000000000000=0.3125

该浮点数的十进制为:

(-1)^0*2^(-126)*0.3125

=3.6734198463196484624023016788195e-39

1
xugesen1989
xugesen1989 好的,非常感谢
接近 4 年之前 回复

写为printf(),注意最后的f。

0
xugesen1989
xugesen1989 啊,写错了,谢谢指正
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【转】printf("%f/n",5)的输出结果为什么是0.000000
1,之所以没输出5,这是C语言设计的原因。 2,之所以输出0,这是计算机体系结构的问题。 具体来说: printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。 C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。这点就和huhugo88所 说一样,5在内存中为00000000,00000101。而且5一般都在静态区,程序的静态存储区默认是0,那么当用%f来读时,就
为什么输出b总是0.000000?
 #include int main() {     int a;     double b;     scanf("%d,%lf",&a,&b);     printf("Get:%d,%f\n",a,b);     return 0; }
printf("%f",5)的输出结果
#include <stdio.h> void main() { printf("%f\n",5); printf("%d\n",5.01); printf("%f\n", (float)5); printf("%f\n", 5.f); } printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f...
C语言中,整型1用float类型输出,为什么会是0.000000?
    因为编译器在输出的时候会先把它转换为double类型(精度高,0多0.000000001),然后再转换为float类型,丢失精度,所以我们会看到0.000000。有什么问题欢迎留言!~~~~...
int输出%f浮点值是0,double/float 浮点数%d输出0的原因
#include <cstdio> using namespace std; int main() { int a = 3; printf("int a print float : %f", a); double b = 3.4; printf("\ndouble b print int : %d", b); return 0; } 输出为:int a pri
Python基本输出函数print()用法小结
Python基本输出函数print()用法小结
echo '1'.print(2)+3; 的输出结果为什么是511
今天看到一道有趣的题目,如上所示。结果为什么会是511呢? 这个结果的计算分为三步: 首先计算的是 右边print(2)+3,这个你可以直接理解成print(2+3),得到的结果是5。而print是一个函数,它的返回值总是1。 第二步就是echo '1'.print('结果')(返回值是1),因此会得到11的结果。 第三部就是将之前计算的结果进行连接,并最终进行输出,得到的结果就是5
输入一个华氏温度,要求输出摄氏温度。公式为c=5*(f-32)/9 保留两位小数
import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         while (scanner.hasNext()) {             int f = sc...
C程序常见错误30例
我们在学习C语言的过程中常常容易犯一些错误,下面就将一些错误列举出来,仅供参考: 1、忘记定义变量。例如: void main() { x=3; y=6; printf("%d\n",x+y); }C要求对程序中用到的每一个变量都必须定义其类型,而上面程序中没有对 x,y进行定义。应该在函数的开头加: int x,y; 2、输入输出的数据类型与所用格式说明符不
输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 输入 一个华氏温度,浮点数 输出 摄氏温度,浮点两位小数 样例输入 -40
题目描述 输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 输入 一个华氏温度,浮点数 输出 摄氏温度,浮点两位小数 样例输入 -40 样例输出 c=-40.00#include int main() { double c,f; scanf("%lf",&f); c=5*(f-32)/9; pri
ACMNO.2 输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 输入 一个华氏温度,浮点数 输出 摄氏温度,浮点两位小数
题目描述 输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 输入 一个华氏温度,浮点数 输出 摄氏温度,浮点两位小数 样例输入 -40 样例输出 c=-40.00 提示 零下40度 来源/分类 C语言 题目截图: 解决思路: 单纯的进行加减乘除即可! 代码: #include<iostream> using nam...
Python学习笔记(十二):lambda表达式与函数式编程
以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话 2013-7-22 21:00 学习笔记 1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。lambda是一个表达式而不是一个语句。它能够出现在Python语法不允许def出现的地方。作为表达式,lambda返回一个值(即一个新的函数)。lambda用来编写简单的函数,而def用来处理更强大的任务。
如何将print的输出保存为文本文件
在每一个print后的括号里加上 file = f,例如: f = open("output.txt", "w") print(img,file = f) f.close() 这里可以不用手动创建output.txt,因为程序会自动创建 ...
将print输出结果保存到txt文件
years = [1,2,3,4,5,6] f = open("c.txt", 'w+') dicte=[] cd={} for i in years: print(i) years.remove(i) b=years dicte=b cd[i]=dicte print(dicte) print(years, file=f) print(cd...
转:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
原文地址:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
习题 3.3 输入一个华氏温度,要求输出摄氏温度。公式为C=5/9(F-32),输出要有文字说明,取两位小数。
C++程序设计(第三版) 谭浩强 习题3.3 个人设计 习题 3.3 输入一个华氏温度,要求输出摄氏温度。公式为C=5/9(F-32),输出要有文字说明,取两位小数。 代码块: #include <iostream> #include <iomanip> using namespace std; int main() { double f, c; ...
输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。
输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。
CCF NOI1019 分段函数
问题链接:CCF NOI1019 分段函数。 时间限制: 1000 ms  空间限制: 262144 KB 题目描述   编写程序,计算下列分段函数y=f(x)的值(输入数据为浮点数,输出保留小数点后三位)。    输入   输入x。 输出   输出f(x)的值,答案保留三位小数。 样例输入 1 样例输出 3.500 数据范围限
输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9,取位2小数。
import java.util.Scanner; import java.text.DecimalFormat ; public class Main { public static void main(String[] args) { Scanner sca = new Scanner(System.in); double f = sca.nextDouble();//输入一个浮点数 doub...
运行结果不该是0.000000 错误在哪
#include void main() {    int  fum(int  x,int  y);      int  a=7 ,b=5,c;      int  m=13;      c=fum(a,b);      printf("%f\n",c/m); } int  fum(int  x,int  y) {           int  m=3;      retu
linux的awk命令解读
Qiniu 七牛问题解答对于大量的日志读取,学会awk是个很好的快速统计的基础。下面我带大家来拜读awk的真面目。本篇文章用的part01源文件,都是默认用空格作为分隔符的。awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息,awk处理过程: 依次对每一行进行处理,处理完成后统计然后输出。举例:这个是最简单的一个例子。下面我们来认真学
学学Python_16语句_print输出表达式
print输出表达式,文章:https://blog.csdn.net/yysyangyangyangshan/article/details/82975261
python字符串的截取和替换
python 字符串截取   python的字符串是有序集合,我们可以通过索引来提取想要获取的字符,可以把python的字符串也做为字符串的列表就更好理解 python的字串列表有2种取值顺序 1是从左到右索引默认0开始的,最大范围是字符串长度少1 s = 'ilovepython' s[0]的结果是i 2是从右到左索引默认-1开始的,最大范围是字符串开头 s =
awk命令基本处理 -- shell
awk 逐行扫描输入 ( 可以是文件或管道等 ) awk 将读入的记录分割成数个字段: 1、$0 表示整条记录,第一个字段放入发量 $1 中,第二个放入发量 $2 中。 2、字段分隔符可以通过选项 -F 指定,否则使用缺省的分隔符,通常为空格或Tab。 ARGC:命令行参数个数 ( 实际就是输入文件的数目加 1 ) ARGIND:当前被处理的文件在数组 ARGV
python程序控制结构练习题(日后回顾)
PY01MOOC Python语言程序设计 - 嵩天首页成员单元设置作业4: 程序的控制结构 (第4周)单元首页成绩单答题卡单项选择题 140 分已完成 14 / 14总分 14010 分1. 哪个选项对死循环的描述是正确的?A使用for语句不会出现死循环B死循环就是没有意义的C死循环有时候对编程有一定作用D无限循环就是死循环 正确答案: C 10 分2. 下列有关break语句与continue...
c语言的double类型printf %lf 显示0.00000问题
在编写c primer plis 问:有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢? 答:printf的%f说明符的确既可以输出float型又可以输出double型。 根据"默认参数提升"规则(在printf这样的函数的可变参数列表中 ,不论作用域内有没有原型,都适用这一规则)float型会被提升为d
awk文件分析
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk命令形式: awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file  [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=...
华为oj-----温度转换(double四舍五入保留两位小数)
华氏温度转换为摄氏温度转换公式c=5/9*(F-32) F为华氏温度C为摄氏温度保留2位小数,2位小数点后四舍五入样例: 输入-40 输出-40.00#include <stdlib.h> #include <string.h> #include "oj.h" /* 功能:华氏温度转换为摄氏温度,公式c=5/9(F-32),保留2位小数 输入:华氏温度 输出:对应的...
Java基础练习题 考试题 笔试题 面试题 (2)
四、循环程序设计1)执行以下程序后,输出结果为public class ex2{ public static void main(String args[]) {    int f=1;     int k;    for (k=2;k       f*=k;;    System.out.println(k);    }}A. 0     B. 1  
Python 3 (print 函数用法总结)
1. 字符串和数值类型 可以直接输出 [python] view plain copy print? >>> print(1)  1  >>> print("Hello World")  Hello World   2.变量 无论什么类型,数值,布尔,列表,字典...都可以直接输出 [python] view plain copy
python的print格式化输出,以及使用format来控制。
  1,打印字符串(str),利用%s。 >>> print ('My name is %s' % ('TaoXiao')) My name is TaoXiao   2,打印整数,浮点数。 >>> print ("He is %d years old" % (23)) # 整数 %d He is 23 years
print没有输出结果
例如下面这个简单的语句: DECLARE @CNNAME NVARCHAR(20); BEGIN    PRINT 'HELLO'+@CNNAME; END;   执行完之后,没有任何输出结果。 出错原因:@CNNAME没有赋值,是空的,字符串和它一块儿PRINT,没有任何输出结果。 解决办法:将变量赋值即可。 DECLARE @CNNAME NVARCHAR(20) ; B
运行结果
#include<stdio.h> int square(int i) { return i*i; } int main() { int i=0; i=square(i); for(;i<3;i++) { static int i= 1; i+=square(i); pri
python 入门题库————python语句和基础数理
python 入门题库python 题库Python使用符号_______表示注释Python不支持的数据类型有查看python版本的命令是在Python中,print(type(16/4))的结果是什么类型的在Python3中,执行下列语句后的显示结果是执行下列语句后的显示结果是Python3中想打印3的2次方,正确的书写形式是python中,a =’hello’ a[-1]的值是:python...
嵌入式中sprintf %f 失效问题解决
 在嵌入式c语言编程中,使用sprintf %f时经常出现一些莫名其妙的问题,如:打印结果为0;打印越界;死机....  在查阅了一些资料后,发现是使用嵌入式操作系统时,堆栈8字节对齐会有影响(具体详细原因我还没搞明白).......= =、 为了避免这个问题,徒手敲了一个浮点数转字符串的函数,并做了长度限制 记录如下: /*功 能: 浮点数保留小数位数四舍五入*/ /*输入参数: ...
T1051 分段函数(#Ⅰ- 3 - 2)
【题目描述】 编写程序,计算下列分段函数y=f(x)的值。  y=-x+2.5; 0  y=2-1.5(x-3)(x-3); 5  y=x/2-1.5; 10 【输入】 一个浮点数N,0 ≤ N 【输出】 输出N对应的分段函数值:f(N)。结果保留到小数点后三位。 【输入样例】 1.0
python3 输出和输出
部分内容转载自:http://www.runoob.com/python3/python3-inputoutput.html 1.读取键盘输入 Python提供了 input() 置函数从标准输入读入一行文本,默认的标准输入是键盘。 input 可以接收一个Python表达式作为输入,并将运算结果返回。#!/usr/bin/python3str = input("请输入:"); print (
python的print函数的格式化输出
print语法格式: 下面的两条语句表达含义是一样的。 print('{}-{} times'.format(word, words.count(word)))  格式1-格式2 匹配1,匹配2 print('%s-%s times'%(word, words.count(word)))   格式1-格式2 匹配1,匹配2
(3)float数据输出打印显示nan
最近在编写自己的小项目的时候出现一个莫名其妙的情况: 控件的position莫名其妙的变成nan。position本应是float类型的,现在却输出打印显示nan,完全不知道为什么额。。。 于是求助百度,这才知道: nan,是not a number的缩写。用于处理计算中出现的错误情况,比如0.0除以0.0或者求负数的平方根。 看这意思多半是在什么地方处理数据的时候处理出现错误了。 但是...
Python学习笔记——print语句用法总结
每门语言都有打印输出语句,例如c语言使用printf,python中可以使用print打印内容到控制台,如何使用print语句进行字符串的格式化输出?分如下几种方式进行分析: 字符串和数值可以直接输出无论什么类型的变量,数值、布尔、列表、字典都可以直接输出输出不换行,在低版本使用逗号结束就可以print x ,,3.x中需要如下写法print(x,end='')格式化输出     格式
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算