แปลงจำนวนเต็มเป็นจำนวนลอย


127

ฉันจะแปลงค่าจำนวนเต็มเพื่อfloat64พิมพ์ได้อย่างไร?

ฉันเหนื่อย

float(integer_value)

แต่ไม่ได้ผล และไม่พบแพ็คเกจใด ๆ ที่ทำสิ่งนี้ได้ในGolang.org

ฉันจะรับfloat64ค่าจากค่าจำนวนเต็มได้อย่างไร

คำตอบ:


180

ไม่มีfloatประเภท. float64ดูเหมือนว่าคุณต้องการ คุณยังสามารถใช้ในfloat32กรณีที่คุณต้องการเพียงค่าทศนิยมที่มีความแม่นยำเดียว

package main

import "fmt"

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

โปรดทราบว่าคอมไพเลอร์ของ go ไม่เข้าใจง่ายเกี่ยวกับเรื่องนี้ a := uint(8); b := uint(5); c := float32(a/b)จะcเป็น 1.00000 ไม่ใช่ 1.6
isomorphismes

34

เพียงเพื่อประโยชน์ของความสมบูรณ์และนี่คือเชื่อมโยงไปยังเอกสาร golang ที่อธิบายทุกประเภท ในกรณีของคุณเป็นประเภทตัวเลข:

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

float64(integer_value)ซึ่งหมายความว่าคุณจำเป็นต้องใช้



0

พิมพ์ Conversions T ()โดยที่Tคือประเภทข้อมูลที่ต้องการของผลลัพธ์นั้นค่อนข้างง่ายใน GoLang

ในโปรแกรมของฉันฉันสแกนจำนวนเต็มฉันจากการป้อนข้อมูลของผู้ใช้ดำเนินการแปลงชนิดที่มันและเก็บไว้ในตัวแปรฉ เอาต์พุตจะพิมพ์สิ่งที่float64เทียบเท่ากับintอินพุต float32ประเภทข้อมูลยังมีอยู่ใน GoLang

รหัส:

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)
}

สารละลาย:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.