永发信息网

c语言中,我用c++的编程软件,然后我定义变量精度时用float,调试时显示的是一个warning

答案:2  悬赏:0  手机版
解决时间 2021-03-29 08:04
  • 提问者网友:萌卜娃娃
  • 2021-03-28 20:16
但输入检测时答案却没错,而我按照程序检测建议把float改成double,调试显示没错,但运行检测时答案却错了,这是为什么,求解答
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2019-09-25 09:35
由于C++默认的浮点常数是double型,所以用浮点常量给float型常量赋值时要强制一下,写成float x=3.14159f;这样的形式。后面那个f告诉编译器3.14159是float型常量而不是double型常量,这样就没有warning了,不然编译器认为你把一个double型常量赋给一个float型变量会产生精度损失而warning……
全部回答
  • 1楼网友:人间朝暮
  • 2020-02-05 05:53
浮点数是采用 1/2^n的级数和来表示的,而这个n是有限制的比如最多表示1/2^24,因此导致低于1/2^24的部分就被忽略了 例如0.75=1/2+1/4
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯