A fuel injection system for an internal combustion engine comprising: a fuel injector which works to spray fuel into an internal combustion engine; and an injection controller working to initiate an injection quantity learning operation to perform an injection quantity determining function in a cycle which instructs said fuel injector to spray the fuel and determines actual injection quantities in sequence that are quantities of the fuel expected to have been sprayed actually from said fuel injector for a given period of time made up of a first time section and a second time section following the first time section, said injection controller also performing an average calculating function and an injection quantity-use decision function, the average calculating function being to calculate in the second time section an average of the actual injection quantities, as determined by the injection quantity determining function, for learning an injection characteristic of said fuel injector, the injection quantity-use decision function being to make decisions in the first and second time sections, respectively, as to whether each of the actual injection quantities is suitable for use in calculating the average through the average calculating function or not, wherein the injection quantity-use decision function decides in the first time section whether a variation in each of the actual injection quantities lies within a given allowable variation range or not, when the variation in one of the actual injection quantities is determined as being lying within the allowable variation range, the injection quantity-use decision function decides that the one of the actual injection quantities is suitable for use in calculating the average, when the number of the actual injection quantities having been decided as being suitable for use in calculating the average has reached a given value, the injection quantity-use decision function initiating the decision in the second time section, wherein when one of the actual injection quantities is out of a given allowable quantity range defined around the average of others of the actual injection quantities, the injection quantity-use decision function excludes the one from calculating the average through the average calculating function, and wherein the injection quantity-use decision function decides in the second time section whether a difference between one of the actual injection quantities and the average of others of the actual injection quantities is within a given range or not, when the difference is within a given range, the average calculating function applying the one in calculating the average. a fuel injector which works to spray fuel into an internal combustion engine; and an injection controller working to initiate an injection quantity learning operation to perform an injection quantity determining function in a cycle which instructs said fuel injector to spray the fuel and determines actual injection quantities in sequence that are quantities of the fuel expected to have been sprayed actually from said fuel injector for a given period of time made up of a first time section and a second time section following the first time section, said injection controller also performing an average calculating function and an injection quantity-use decision function, the average calculating function being to calculate in the second time section an average of the actual injection quantities, as determined by the injection quantity determining function, for learning an injection characteristic of said fuel injector, the injection quantity-use decision function being to make decisions in the first and second time sections, respectively, as to whether each of the actual injection quantities is suitable for use in calculating the average through the average calculating function or not, wherein the injection quantity-use decision function decides in the first time section whether a variation in each of the actual injection quantities lies within a given allowable variation range or not, when the variation in one of the actual injection quantities is determined as being lying within the allowable variation range, the injection quantity-use decision function decides that the one of the actual injection quantities is suitable for use in calculating the average, when the number of the actual injection quantities having been decided as being suitable for use in calculating the average has reached a given value, the injection quantity-use decision function initiating the decision in the second time section, wherein when one of the actual injection quantities is out of a given allowable quantity range defined around the average of others of the actual injection quantities, the injection quantity-use decision function excludes the one from calculating the average through the average calculating function, and wherein the injection quantity-use decision function decides in the second time section whether a difference between one of the actual injection quantities and the average of others of the actual injection quantities is within a given range or not, when the difference is within a given range, the average calculating function applying the one in calculating the average.