鱼C论坛

 找回密码
 立即注册
查看: 4617|回复: 8

求解,数据类型输出问题

[复制链接]
发表于 2013-6-27 20:18:29 | 显示全部楼层 |阅读模式
5鱼币
今天看鱼哥视频有这样一个例子:
void main()
{
        char c='k';
        int  i=1, j=2, k=3;
        float x=3e+5, y=0.85;
        printf("%d", x);
        printf("%d,%d\n", 'a'+5<c, -i-2*j >= k+1);
        printf("%d,%d\n", 1 <j <5, x-5.25 <= x+y);
        printf("%d,%d\n", i+j+k ==-2*k, k == j == i+5);
}
为什么  printf("%d", x); 输出结果是   0,而 printf("%f", x); 输出结果是 300000.000000
是不是我前面有什么重要知识忽略了???
系统为window7,编译器为vc6.0绿色版


最佳答案

查看完整内容

参考下这篇文档:http://www.cnblogs.com/zhaoyl/archive/2012/04/21/2462409.html {:1_1:}看完后,你可以试试看: float x = 3e+5; printf("%d\n", x); printf("%d\n", (int)x); //(int)x表示把x强制为整数型,后面的小数的精度会丢失!比如float是294.104 输出就是294.000;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-27 20:18:30 | 显示全部楼层
本帖最后由 zer0 于 2013-6-28 00:58 编辑

参考下这篇文档:http://www.cnblogs.com/zhaoyl/archive/2012/04/21/2462409.html  {:1_1:}看完后,你可以试试看:
        float x = 3e+5;
        printf("%d\n", x);
        printf("%d\n", (int)x);  //(int)x表示把x强制为整数型,后面的小数的精度会丢失!比如float是294.104  输出就是294.000;

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-27 20:51:04 | 显示全部楼层
%d只能用来输出int型数和char型数据,输出其他都是错误的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-27 21:08:41 | 显示全部楼层
类型转换错误! 如果你要输出的是浮点型就是float    %f  而你却print出%d  会帮你把浮点型数据强制转换为整形数据. 所以会出0
你可以把printf("%d", x); 换成 printf("%f", x);

顺便给你一些常用的类型:
转换说明及作为结果的打印输出%a 浮点数、十六进制数字和p-记数法(C99)
%A    浮点数、十六进制数字和p-记法(C99)
%c    一个字符
%d    有符号十进制整数
%e    浮点数、e-记数法
%E    浮点数、E-记数法
%f    浮点数、十进制记数法  
%g    根据数值不同自动选择%f或%e.
%G    根据数值不同自动选择%f或%e.
%i 有符号十进制数(与%d相同)
%o    无符号八进制整数
%p    指针   
%s    字符串
%u    无符号十进制整数
%x    使用十六进制数字0f的无符号十六进制整数
%X    使用十六进制数字0f的无符号十六进制整数
%%    打印一个百分号 使用printf ()函数 printf()的基本形式: printf("格式控制字符串",变量列表);


其中有些是C99规定的,(具体哪个我也没测试)前提是你的编译器要支持C99
你的是VC6.0 是不支持C99规定,  VS这些也不完全支持C99!

不懂欢迎追问!{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-28 00:17:59 | 显示全部楼层

为什么那个3e+5转换成整形就成0了,浮点型转换成整形不是取整数部分忽略小数部分么,怎么成0了???求指点
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-28 19:39:49 | 显示全部楼层
学习了!!!!!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-28 21:43:38 | 显示全部楼层
学习了!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-28 22:50:39 | 显示全部楼层
zer0 发表于 2013-6-28 00:57
参考下这篇文档:http://www.cnblogs.com/zhaoyl/archive/2012/04/21/2462409.html  看完后,你可以试 ...

谢谢耐心指点
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-3 08:05:27 | 显示全部楼层
lz。你设置的数据类型是float。而printf输出却用%d的格式输出。。肯定有出入。。多调试。哥
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-21 19:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表