fix average package
This commit is contained in:
@@ -2,7 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"golang-book/head-first-go/chapter4/const/dates"
|
||||
"headfirstgo/golang-book/chapter4/const/dates"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
"headfirstgo/headfirstgo/chapter5/datafile"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
numbers := [3]float64{71.8, 56.2, 89.5}
|
||||
numbers, err := datafile.GetFloats("data.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
var sum float64 = 0
|
||||
for _, num := range numbers {
|
||||
sum += num
|
||||
}
|
||||
|
||||
fmt.Println(sum)
|
||||
sampleCount := float64(len(numbers))
|
||||
fmt.Printf("Average: %0.2f\n", sum/sampleCount)
|
||||
}
|
||||
|
||||
34
chapter5/datafile/floats.go
Normal file
34
chapter5/datafile/floats.go
Normal file
@@ -0,0 +1,34 @@
|
||||
// Пакет datafile предназначен для чтения данных из файлов
|
||||
package datafile
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// GetFloats читает значение float64 из каждой строки файла
|
||||
func GetFloats(fileName string) ([3]float64, error) {
|
||||
var numbers [3]float64
|
||||
file, err := os.Open(fileName)
|
||||
if err != nil {
|
||||
return numbers, err
|
||||
}
|
||||
i := 0
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
numbers[i], err = strconv.ParseFloat(scanner.Text(), 64)
|
||||
if err != nil {
|
||||
return numbers, err
|
||||
}
|
||||
i++
|
||||
}
|
||||
err = file.Close()
|
||||
if err != nil {
|
||||
return numbers, err
|
||||
}
|
||||
if scanner.Err() != nil {
|
||||
return numbers, scanner.Err()
|
||||
}
|
||||
return numbers, nil
|
||||
}
|
||||
Reference in New Issue
Block a user