1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python double转int_int float double数据类型之间转换的原则

python double转int_int float double数据类型之间转换的原则

时间:2020-12-03 09:37:34

相关推荐

python double转int_int float double数据类型之间转换的原则

C语言提供了两种不同的浮点数据:float 和 double,即单精度和双精度浮点。

当在int(假设int是32位的)、float和double格式之间进行强制类型转换时,原则如下:

从 int 转换成 float,数字不会溢出,但是可能被舍入。

从 int、float 转换成 double,能够保留精确的数值。因为 double 有更大的范围和更高的精度(有效位数)。

从 double 转换成 float,因为 float 范围要小一些,所以值可能溢出成 +∞ 或 -∞。另外由于float精度较小,还可能被舍入。

从 float、double 转换成 int,值将会向零舍入。如1.999会被转成1,-1.999会被转成-1。同时值可能会溢出。

将大的浮点数转换成整数是一种常见的错误。

1996年6月4日,阿丽亚娜5型火箭(Ariane 5)初次航行,一个错误便产生了灾难性的后果。发射后仅仅37秒,火箭偏离了它的飞行路径,随后解体并且爆炸。火箭上载有价值5亿美元的通讯卫星。

后来调查发现,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。它没有发送飞行控制信息,而是送出了一个诊断位模式,表明在将一个64为浮点数转换成16位有符号整数时,产生了溢出。

溢出的值是火箭的水平速率,这比早先的Ariane 4 火箭所能达到的速度高出了5倍。在设计Ariane 4 时,开发人员小心地分析了这些数字值,并且确定水平速率不会超出一个16位数的表示范围。不幸的是,在Ariane 5 火箭的系统中简单重用了这部分代码,而没有检查它所基于的假设。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。