A misfire detecting device for an internal combustion engine , the misfire detecting device comprising a central processing unit being configured to execute: a calculating process that calculates a torque index value using an output signal of a crank angle sensor as an input; and a determination process that determines whether there is a misfire based on a magnitude of the torque index value related to a cylinder subject to determination as to whether there is a misfire in the internal combustion engine , wherein the determination process determines whether there is the misfire based on a comparison between a determination value and a relative magnitude of the current torque index value of the cylinder subject to the determination in relation to an average of past torque index values, the past torque index values are values related to cylinders in each of which a compression top dead center occurs at a point separated from a compression top dead center of the cylinder subject to the determination by an integral multiple of an angle corresponding to one turn of a crankshaft , the torque index value is a variable that characterizes a torque of the crankshaft having a cycle of a length corresponding to an interval between occurrences of the compression top dead center, the average is obtained by selecting a specific number of torque index values from a defined number of the torque index values that were calculated in the past and averaging the specific number of the torque index values, the specific number of the torque index values being farthest from a value at a time when the misfire occurs, the specific number is less than the defined number, the torque index value is a rotation fluctuation amount, the rotation fluctuation amount is a variable representing a change of an instantaneous speed variable, and the instantaneous speed variable is a variable representing a speed of the crankshaft when the crankshaft rotates in a rotation angle range that is less than or equal to the interval between occurrences of the compression top dead center. a calculating process that calculates a torque index value using an output signal of a crank angle sensor as an input; and a determination process that determines whether there is a misfire based on a magnitude of the torque index value related to a cylinder subject to determination as to whether there is a misfire in the internal combustion engine , wherein the determination process determines whether there is the misfire based on a comparison between a determination value and a relative magnitude of the current torque index value of the cylinder subject to the determination in relation to an average of past torque index values, the past torque index values are values related to cylinders in each of which a compression top dead center occurs at a point separated from a compression top dead center of the cylinder subject to the determination by an integral multiple of an angle corresponding to one turn of a crankshaft , the torque index value is a variable that characterizes a torque of the crankshaft having a cycle of a length corresponding to an interval between occurrences of the compression top dead center, the average is obtained by selecting a specific number of torque index values from a defined number of the torque index values that were calculated in the past and averaging the specific number of the torque index values, the specific number of the torque index values being farthest from a value at a time when the misfire occurs, the specific number is less than the defined number, the torque index value is a rotation fluctuation amount, the rotation fluctuation amount is a variable representing a change of an instantaneous speed variable, and the instantaneous speed variable is a variable representing a speed of the crankshaft when the crankshaft rotates in a rotation angle range that is less than or equal to the interval between occurrences of the compression top dead center. <EOS>