C语言给出一个浮点数默认是double型,为什么可以把3.14赋给float的变 ...

发布网友 发布时间:2024-10-24 01:02

我来回答

1个回答

热心网友 时间:2024-11-05 23:16

C语言可以把double类型的成员赋给float类型,但精度会损失
因为C语言对同种且不同长度的类型是没有检查的
比方说,把long型的整数赋给int类型也是可以的,但后果自负(有可能造成数位丢失或数不准确)
还有把unsigned型的整数赋给int也可以,但二进制最高位为1时存储的值将不是你先前unsigned类型的值

比方说,TurboC当中,int类型的范围是-32768至32767
如果你使用 int a=32768,不会报错,但a的值将是-32768 (二进制1000000000000000)

Java和C#正是因为看到了这些缺陷,所以加了这种检查

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com