Why does division result in zero instead of a decimal?

前端 未结 5 628
隐瞒了意图╮
隐瞒了意图╮ 2020-11-21 05:38

Teaching myself C and finding that when I do an equation for a temp conversion it won\'t work unless I change the fraction to a decimal. ie,

tempC=(.555*(tempF

5条回答
  •  北荒
    北荒 (楼主)
    2020-11-21 06:01

    When you do 5/9, 5 and 9 are both integers and integer division happens. The result of integer division is an integer and it is the quotient of the two operands. So, the quotient in case of 5/9 is 0 and since you multiply by 0, tempC comes out to be 0. In order to not have integer division, atleast one of the two operands must be float.

    E.g. if you use 5.0/9 or 5/9.0 or 5.0/9.0, it will work as expected.

提交回复
热议问题