作业帮 > 综合 > 作业

C语言 两个浮点数相除,a始终大于b,c应该小于1才对为什么结果总大于1

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/02 06:05:43
C语言 两个浮点数相除,a始终大于b,c应该小于1才对为什么结果总大于1
C语言中,定义a,b,c均为32位单精度浮点数,
c=a/b;
a始终大于b,c应该小于1才对
当a=4719.000,b=2069.000 ,c正确的结果应为0.4384404,为什么观察到的是4.384404,
a,b为其它值的时候也一样,反正就是将正确结果的小数向后移位,直到结果大于1
开始说错了,是a始终小于 b,
我的编程就是
uint32 a; uint32b;float c;
c=(float)a/(float)b;
程序没什么问题吧
a=2069.000 ,b=4719.000,c正确的结果应为0.4384404,为什么观察到的是4.384404,
C语言 两个浮点数相除,a始终大于b,c应该小于1才对为什么结果总大于1
什么?”a始终大于b,c应该小于1才对“ 结果就应该大于1啊.
而且楼主说“当a=4719.000,b=2069.000 ,c正确的结果应为0.4384404,为什么观察到的是4.384404,”
我很想知道你是怎么观察的,正确结果应该是2.2808120才对啊.
能说清楚点吗?
再问: 错了,错了,是a始终小于 b,a=4719.000, b=2069.000 ,c正确的结果应为0.4384404,为什么观察到的是4.384404, 哈哈,不好意思,误导了啊
再答: 即使这样观察到的也不是4.384404,而是0.43844035。 现在问题就是,你是用什么方式观察的,把完整代码贴出来吧。
再问: 我是用mplab调dspic单片机程序,把值调出来观察的,编程如下 uint32 a; uint32b;float c; c=(float)a/(float)b;
再答: 什么是把值调出来观察?
再问: 就是一个watch窗口,可以把程序中变量的值加进去,就可以观察了 想不通是什么问题 我跟你发百度消息了,你要不加我QQ,我QQ上再问你吧,这再追问的话又要扣我财富值了