永发信息网

定义为float型并且scanf中规定输入%f型的数字,但输入数字的时候是int型 为什么结果是正确的

答案:2  悬赏:10  手机版
解决时间 2021-03-02 13:16
  • 提问者网友:几叶到寒
  • 2021-03-02 02:48
定义为float型并且scanf中规定输入%f型的数字,但输入数字的时候是int型 为什么结果是正确的
最佳答案
  • 五星知识达人网友:詩光轨車
  • 2021-03-02 03:52
你在float及int型的理解上有一些问题:比如一个数字2,它是int型的一个值,当你把它当作float型时,它会自动在内部转变为2.0,也就是说你将一个整形量赋值给一个浮点型变量的时候,整形变量是会自动转换成浮点类型的。
你问的将v=%f\n换成v=%d\n出错是因为你前面定义的变量v是浮点型,在输出控制里只能是和变量同样的类型,不同的话就会出现错误。你可以将2理解为既是整形又是浮点型的数字,这样应该就没有疑问了吧?
全部回答
  • 1楼网友:不甚了了
  • 2021-03-02 04:51
数据格式是向下兼容的,如果你设置为%d,但输入浮点就会出问题的。设置为%f,输入整形浮点都没问题。 浮点数结果按整型数输出肯定不正确了,如果整型数按照浮点数输出就没问题的,向下兼容的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯