Строка в дробное в Go
Текст, содержащий дробь, переводят в float64
функцией strconv.ParseFloat. Второй
аргумент задает размер: для обычной дроби
берут 64. Функция возвращает число
и ошибку; при успехе err равен nil.
Пример разбора:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "1.5"
num, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("fail")
return
}
fmt.Println(num + 1.0)
}
Целый текст тоже переводится в дробное число. На экране дробная часть из нулей не видна:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "12"
num, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("fail")
return
}
fmt.Println(num)
}
Запятая разделителем дробной части не будет. Разбор останавливается на запятой, и число получается целым:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "1,5"
num, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("fail")
return
}
fmt.Println(num)
}
Если цифр в тексте нет, err не равен
nil:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "abc"
_, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("fail")
}
}
Дан код:
str1 := "2.5"
str2 := "1.25"
Найдите сумму чисел из этих строк и выведите ее.
Дан код:
str1 := "3.0"
str2 := "4.0"
Найдите произведение чисел из этих строк и выведите его.
Дан код:
str1 := "0.5"
str2 := "2.0"
Найдите сумму чисел из этих строк и выведите ее.
Дан следующий код:
str := "2,75"
num, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("fail")
return
}
fmt.Println(num)
Скажите, каким будет результат.