2 qq 37262350 qq_37262350 于 2017.01.09 14:03 提问

请问为什么输出结果是0?double型用d%输出会怎么样?

图片

2个回答

shen_wei
shen_wei   Ds   Rxr 2017.01.12 16:09
已采纳

x = 6;
y = (x+3.8)/5.0;

y= 1

printf("%d\n",f * y); 打印就是乱码。。

printf("%d\n",(int)f * y); 2

printf("%f\n",f * y); 2.2

bdmh
bdmh   Ds   Rxr 2017.01.09 14:05

浮点数操作取整了,y是int类型,%d也是整形

aa649471699
aa649471699 qq_37262350 打印的时候用%f
一年多之前 回复
aa649471699
aa649471699 打印的时候用%f
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
*******************************float类型%d输出**************************************        floata=7.5f;      如果用printf("%d",a);输出的是0。        但float型用%d输出是否一定是0呢,答案肯定不都是0;        为什么 7.5用%d输出的是0?分析如下:
转:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
原文地址:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
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
printf中用%d输出float或者double
首先说一个“默认参数提升”的概念: If the expression that denotes the called function has a type that does include a prototype, the arguments are implicitly converted, as if by assignment, to the types of the corresp
为什么printf不能用%lf输出double型,而用%f?
来源: 为什么使用%lf读取double型的值,而用%f进行显示?  今天看到一篇好文章,mark一下。 出去旅游了一下,所以有些天没敲代码,于是又弱爆了~忘掉了题目中的东西,结果出现了问题,好难找哈~ 死记硬背是很难记住一些东西的,只有理解原理才记得深入!     注意scanf函数和printf函数是不同寻常的函数,因为它们都没有将函数的参数限制为固定数量。scanf函数和p
c语言的double类型printf %lf 显示0.00000问题
在编写c primer plis 问:有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢? 答:printf的%f说明符的确既可以输出float型又可以输出double型。 根据"默认参数提升"规则(在printf这样的函数的可变参数列表中 ,不论作用域内有没有原型,都适用这一规则)float型会被提升为d
c语言格式输出剖析——用%d输出float类型数据与int类型%f格式输出
C语言学习实践                            摘要     本文将从C语言变量的本质,不同类型变量在内存中的存储方式,类型强制转换,格式输出4个方面阐述C语言初学阶段的一些问题。 关键词:内存存储,类型强制转换,反汇编   1. 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。在诸如C语言等高级语言中,变量的使用屏蔽了数据在底层细节,
VS2012中用cout输出float和double类型数据
今天在用C++编程的时候,发现用cout输出的float和double类型精度有问题 float fTest=1; double dTest=1; cout cout cout cout cout cout 运行效果如下
关于double类型的误差问题
以一元二次方程a*x*x+b*x+c=0为例,讲讲关于double类型的误差问题。当a为0时,方程的根为-c/b;当a不为0时,得进一步确定判别式△,△=b*b-4*a*c,令d=△;当d&amp;lt;0,无实根;当d=0,两根为同一值,x1=x1=-c/b;当d&amp;gt;0,由求根公式得到两个不同的根值。其中C语言编程中必用到根号,所以涉及到使用double。double有32位,每一位具有相应的意义,...
double类型相减结果误差的解决办法
 public   class   DBConnectionManager   {         public   static   void   main(String[]   args)   {             double   a1   =   1.0;             double   a2   =   2.2;              //使用一下3句代码