Chuyển đổi một số nguyên thành một số float


127

Làm cách nào để chuyển đổi một giá trị nguyên sang float64loại?

Tôi đã thử

float(integer_value)

Dường như không hiệu quả. Và không thể tìm thấy bất kỳ gói nào thực hiện điều này trên Golang.org

Làm cách nào để nhận float64giá trị từ giá trị nguyên?

Câu trả lời:


180

Không có floatloại. Hình như bạn muốn float64. Bạn cũng có thể sử dụng float32nếu bạn chỉ cần một giá trị dấu phẩy động chính xác duy nhất.

package main

import "fmt"

func main() {
    i := 5
    f := float64(i)
    fmt.Printf("f is %f\n", f)
}

Chúng ta hãy lưu ý rằng trình biên dịch của go là không trực quan về điều này. a := uint(8); b := uint(5); c := float32(a/b)sẽ clà 1,00000 chứ không phải 1,6.
đẳng cấu

33

Để hoàn thiện, đây là một liên kết đến tài liệu golang mô tả tất cả các loại . Trong trường hợp của bạn, nó là loại số:

uint8       the set of all unsigned  8-bit integers (0 to 255)
uint16      the set of all unsigned 16-bit integers (0 to 65535)
uint32      the set of all unsigned 32-bit integers (0 to 4294967295)
uint64      the set of all unsigned 64-bit integers (0 to 18446744073709551615)

int8        the set of all signed  8-bit integers (-128 to 127)
int16       the set of all signed 16-bit integers (-32768 to 32767)
int32       the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64       the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)

float32     the set of all IEEE-754 32-bit floating-point numbers
float64     the set of all IEEE-754 64-bit floating-point numbers

complex64   the set of all complex numbers with float32 real and imaginary parts
complex128  the set of all complex numbers with float64 real and imaginary parts

byte        alias for uint8
rune        alias for int32

Có nghĩa là bạn cần sử dụng float64(integer_value).


2

intutils.ToFloat32

// ToFloat32 converts a int num to a float32 num
func ToFloat32(in int) float32 {
    return float32(in)
}

// ToFloat64 converts a int num to a float64 num
func ToFloat64(in int) float64 {
    return float64(in)
}

0

Loại chuyển đổi T () trong đó T là kiểu dữ liệu mong muốn của kết quả khá đơn giản trong GoLang.

Trong chương trình của tôi, tôi quét một số nguyên i từ đầu vào của người dùng, thực hiện chuyển đổi loại trên đó và lưu trữ nó trong biến f . Đầu ra in float64tương đương với intđầu vào. float32kiểu dữ liệu cũng có sẵn trong GoLang

Mã số:

package main
import "fmt"
func main() {
    var i int
    fmt.Println("Enter an Integer input: ")
    fmt.Scanf("%d", &i)
    f := float64(i)
    fmt.Printf("The float64 representation of %d is %f\n", i, f)
}

Giải pháp:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.