diff --git a/feature/plural/plural.go b/feature/plural/plural.go
index 2b4cfe3..7273091 100644
--- a/feature/plural/plural.go
+++ b/feature/plural/plural.go
@@ -113,13 +113,12 @@
 //      100000.00  []byte{1}           6......3
 func (p *Rules) MatchDigits(t language.Tag, digits []byte, exp, scale int) Form {
 	index, _ := language.CompactIndex(t)
-	endN := len(digits) + exp
 
 	// Differentiate up to including mod 1000000 for the integer part.
-	n := getIntApprox(digits, 0, endN, 6, 1000000)
+	n := getIntApprox(digits, 0, exp, 6, 1000000)
 
 	// Differentiate up to including mod 100 for the fractional part.
-	f := getIntApprox(digits, endN, endN+scale, 2, 100)
+	f := getIntApprox(digits, exp, exp+scale, 2, 100)
 
 	return matchPlural(p, index, n, f, scale)
 }
diff --git a/feature/plural/plural_test.go b/feature/plural/plural_test.go
index e5524c5..2b30e9d 100644
--- a/feature/plural/plural_test.go
+++ b/feature/plural/plural_test.go
@@ -28,6 +28,8 @@
 		{"123", 0, 2, 2, 12},
 		{"123", 3, 4, 2, 0},
 		{"12345", 3, 4, 2, 4},
+		{"40", 0, 1, 2, 4},
+		{"1", 0, 7, 2, big},
 
 		{"123", 0, 5, 2, big},
 		{"123", 0, 5, 3, big},
@@ -114,7 +116,7 @@
 						for i := range digits {
 							digits[i] -= '0'
 						}
-						if f := p.MatchDigits(tag, digits, 0, 0); f != Form(tc.form) {
+						if f := p.MatchDigits(tag, digits, len(digits), 0); f != Form(tc.form) {
 							t.Errorf("MatchDigits: got %v; want %v", f, Form(tc.form))
 						}
 					})
@@ -142,11 +144,12 @@
 						if f := p.matchComponents(tag, n/m, n%m, scale); f != Form(tc.form) {
 							t.Errorf("matchComponents: got %v; want %v", f, Form(tc.form))
 						}
+						exp := strings.IndexByte(num, '.')
 						digits := []byte(strings.Replace(num, ".", "", 1))
 						for i := range digits {
 							digits[i] -= '0'
 						}
-						if f := p.MatchDigits(tag, digits, -scale, scale); f != Form(tc.form) {
+						if f := p.MatchDigits(tag, digits, exp, scale); f != Form(tc.form) {
 							t.Errorf("MatchDigits: got %v; want %v", f, Form(tc.form))
 						}
 					})
