您好、欢迎来到现金彩票网!
当前位置:秒速快三开奖 > 双精度小数 >

在VC++60上使用c语言编程单精度浮点型和双精度浮点型为何都只能

发布时间:2019-06-07 06:51 来源:未知 编辑:admin

  在VC++6.0上使用c语言编程,单精度浮点型和双精度浮点型为何都只能精确到小数点后六位?

  在VC++6.0上使用c语言编程,单精度浮点型和双精度浮点型为何都只能精确到小数点后六位?

  一:在我的编译器中单精度浮点型和双精度浮点型显示时为何都只能精确到小数点后六位?不是说双精度比单精度更精确吗?既然都是六位,精确性的对比体现在哪里?二:程序如下,运行结果...

  一:在我的编译器中单精度浮点型和双精度浮点型显示时为何都只能精确到小数点后六位?不是说双精度比单精度更精确吗?既然都是六位,精确性的对比体现在哪里?二:程序如下,运行结果如下我知道运行结果中只有左上角和右下角的数据是正确的。

  疑问一:为何显示的是这四个数据,请以此四个数据为例依次从字节,位(顺便详细讲一下符号位,指数位,尾数位),二进制与十进制间的互化,由浅入深,再由深到浅的详细讲解为何最终显示的是这四个数据。

  疑问二:为何最终显示的都是小数点后六位?double比fioat的精确性体现在哪里?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围更多追问追答追问既然float的有效数字是6-7位

  那为什么在运行结果中显示的都是只有小数点后六位呢?追答ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,

  有的系统将double所增加的32位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。

  有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围追问我是不是可以猜测我的系统将所增加的位用来存放指数部分了?因为我的电脑上两种数据类型的有效范围是一样的,都是小数点后六位。

  同样,您的意思是说:在有的电脑或系统上,会存在double类型数据的小数点后位数远比float小数点后的位数多的现象。您是这个意思吗?追答

  是不是赋值时虽然有20位,但是赋值后系统储存时,对float类型的数据只进行读取小数点后4位进行储存,然而却对double类型的数据进行读取小数点后13位进行储存?追答是的 因为放不下 我指定输出20位

  谢谢,祝您新年快乐,假如我对这个问题有新疑问时再继续追问您,请您继续关注,真心感谢!

  展开全部你这就犯了想当然的错误,你调用printf()函数却不去查看printf()函数的源代码或者用法。

  我不了解printf函数,所以无法提出新的问题,我先去了解一下,稍后再来,请您继续关注,祝新年开心!简单地说,你不用.prec指定精度,printf()函数就会显示6位小数,所以你看不出区别。

  展开全部双精度和单精度的不同在于字节数,从而决定了存储数据的范围不同。但是你那里小数点后都是六位,这个是人为规定的,不同之处在于小数点前也就是整数部分,小数部分都一样。有问题可以再问更多追问追答追问“float和double显示的小数部分都一样,都是小数点后六位”这是人为规定的?好的,这一点知道了。但是,您说二者的整数部分不同,这是什么意思呢?能举个例子吗?真心感谢了追答因为double占用的字节数比float多啊(虽然也有的系统这两个一样多,也就是完全一样)

  小数点后都是六位了,多出来的那部分就体现在整数部分了啊,这样double型数据表示的数范围就比float大了嗯,是的。其实楼上已经说过了,double和float没有强制的规定的,不同的系统都不一样。有的系统double和float也是一样的,也就是说都是32位。一般情况是double64位,float32位。

http://cellmall.net/shuangjingduxiaoshu/151.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有