Jasmine_can 2024-03-26 18:45 采纳率: 100%
浏览 5
已结题

【学习与成长】初学者请教C++问题

#初学小白提问,求大佬解答,提前感谢:
为什么我按照图一运行出来的h就是对的?而按照图二运行出来就出h就为0?我自己考虑的是浮点数问题,之前为int的时候,将1/2读成0了,我便改成double,但还是出错了。

img

img

  • 写回答

3条回答 默认 最新

  • 关注

    volcano_7d2 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在C++中,除法运算符/对于两个整数类型的操作数会执行整数除法,即只保留计算结果的整数部分。因此,当你使用1/2时,结果将会是0。

    为了得到正确的结果,你可以将其中一个操作数转换为浮点数类型,这样就会执行浮点数除法。你可以使用以下任一种方法:

    1. 将其中一个操作数标记为浮点数,例如:1.0 / 2,这样结果将会是0.5。
    2. 将其中一个操作数强制转换为浮点数类型,例如:(double)1 / 2,这样结果也会是0.5。
    3. 声明12为浮点数类型,例如:double x = 1, y = 2; x / y,这样结果同样为0.5。

    请注意,在进行浮点数除法时,可能会存在精度误差。如果你需要一个精确的结果,请考虑使用浮点数比较方法,例如使用特定的精度范围来判断两个浮点数是否相等。

    声明浮点数变量时,需要使用浮点数类型,例如double h = 1.0 / 2;

    希望这可以帮助到你。如果你还有其他问题,请随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月26日

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?