社区
C语言
帖子详情
大家帮忙看看输出
拉卡尼休
2009-08-08 08:06:18
大家帮忙看看,ll的值应该是多少,为什么?谢谢
#include <stdio.h>
int main(int argc, char* argv[])
{
float hh = 2.3;
unsigned int ll = ((int)(hh*10))%10;
printf("%d\n",ll);
return 0;
}
...全文
114
9
打赏
收藏
大家帮忙看看输出
大家帮忙看看,ll的值应该是多少,为什么?谢谢 #include int main(int argc, char* argv[]) { float hh = 2.3; unsigned int ll = ((int)(hh*10))%10; printf("%d\n",ll); return 0; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guifei05
2009-08-09
打赏
举报
回复
把float hh = 2.3;定义为double hh=2.3;试试
harukoQ
2009-08-09
打赏
举报
回复
cout<<(int)(hh*10)果然是22....
飞天御剑流
2009-08-09
打赏
举报
回复
[Quote=引用 4 楼 linux_qt 的回复:]
呵呵,我用gcc/g++/VC编译的结果都是2,我这样解释,编译器看到float型的2.3认为,3是最后精确地数字,所以它在内存存储的值可能是2.300001或者2.299998,这个程序中也许恰好选择了后者,所以ll值就是2了。
在这里是希望大家能给出确定的解释,我只是猜测,谢谢了。
[/Quote]
原因就是这样。
fuel2002
2009-08-09
打赏
举报
回复
你把hh换成2.4或2.5不就结了吗?原因很容易得到嘛。
拉卡尼休
2009-08-08
打赏
举报
回复
另外,因为有显示强制类型转换,所以也就没有了数据丢失的警告。
拉卡尼休
2009-08-08
打赏
举报
回复
呵呵,我用gcc/g++/VC编译的结果都是2,我这样解释,编译器看到float型的2.3认为,3是最后精确地数字,所以它在内存存储的值可能是2.300001或者2.299998,这个程序中也许恰好选择了后者,所以ll值就是2了。
在这里是希望大家能给出确定的解释,我只是猜测,谢谢了。
wuda_1990
2009-08-08
打赏
举报
回复
我认为是3,在c++里2.3是double类型的,会出现数据丢失的警告。
拉卡尼休
2009-08-08
打赏
举报
回复
这两个输出有关系吗?
float hh = 2.3;
unsigned int ll = ((int)(hh*10))%10;
printf("%f\n",hh);
printf("%d\n",ll);
pmerOFc
2009-08-08
打赏
举报
回复
2或3
难说
定时器和PWM
输出
-第5季第3部分
结合朱老师物联网大讲堂专为nbiot物联网开发而设计的NB476开发板,本季课程能够让大家彻底掌握物联网时代以nbiot和低功耗STM32L4单片机为代表的典型开发模式,实战意义非常重要。 课程特色 *完全零基础,降低学习...
c语言作业
输出
一下图案,C语言编程题 哪位大神
帮忙
看看
怎么做
输出
以下图案: * ** *** **** ***** ******...
C语言编程题 哪位大神
帮忙
看看
怎么做
输出
以下图案: * ** *** **** ***** ******以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!C语言编程题 哪位...
C语言
输出
时数据很大,大家看一下,m=1000000时怎样正常
输出
数据呢?
大家看一下,m=1000000时怎样正常
输出
数据呢?一个数如75, 则规定d(75)=75+5+7=87。有一种数叫self-number,就是无论n为何值,都无法用d(n)表示 例如1 3 5 7 9 20 31 42 53 64…………9903 9914 9925 9927 9938 9949...
小明放学(30分)求大佬
帮忙
看看
哪里有问题
请
帮忙
计算小明此次回家所需要的时间。 输入格式 输入的第一行包含空格分隔的三个正整数 r、y、g,表示红绿灯的设置。这三个数均不超过 106。 输入的第二行包含一个正整数 n,表示小明总共经过的道路段数和路过的红...
STM32引脚
输出
为啥
输出
不了0.6ms高电平?
做课设时遇到一个问题,编码好久引脚
输出
不对,就怀疑引脚
输出
有问题,将所有程序注释掉,只有
输出
高低电平和延时,延时1msLED就亮,logic analyzer也有波形,改为0.6ms就没有?...大家
帮忙
看一看...
C语言
69,368
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章