diff --git a/prober/decoder.go b/prober/decoder.go
index b961b36340d44de48603a6685b52641e03c60ceb..7c45266223444a2acaf77acb1453c75b53f2c932 100644
--- a/prober/decoder.go
+++ b/prober/decoder.go
@@ -48,12 +48,6 @@ type floatReader struct {
 	io.Reader
 }
 
-func (r floatReader) ReadFloats(buf []float64) (n int, err error) {
-	for n = 0; n < len(buf); n++ {
-		err = binary.Read(r.Reader, binary.LittleEndian, &buf[n])
-		if err != nil {
-			break
-		}
-	}
-	return
+func (r floatReader) ReadFloats(buf []float64) error {
+	return binary.Read(r.Reader, binary.LittleEndian, buf)
 }
diff --git a/prober/prober.go b/prober/prober.go
index dd8b6f089603c777464a9ab4b4f2d0966bedb181..8086f135d47a842ac3e2bf53f4049bd6c32a9523 100644
--- a/prober/prober.go
+++ b/prober/prober.go
@@ -127,8 +127,7 @@ func (p *Prober) stream() {
 	fr := &floatReader{dec}
 	buf := make([]float64, bufSize)
 	for {
-		_, err := fr.ReadFloats(buf)
-		if err != nil {
+		if err := fr.ReadFloats(buf); err != nil {
 			break
 		}