英文:
Convert an integer to a float number
问题
如何将整数值转换为float64
类型?
我尝试了
float(integer_value)
但是这个方法不起作用。我在Golang.org上找不到任何可以实现这个功能的包。
如何从整数值获取float64
值?
英文:
How do I convert an integer value to float64
type?
I tried
float(integer_value)
But this does not work. And can't find any package that does this on Golang.org
How do I get float64
values from integer values?
答案1
得分: 221
没有float
类型。看起来你想要使用float64
。如果你只需要单精度浮点数,也可以使用float32
。
package main
import "fmt"
func main() {
i := 5
f := float64(i)
fmt.Printf("f is %f\n", f)
}
英文:
There is no float
type. Looks like you want float64
. You could also use float32
if you only need a single-precision floating point value.
package main
import "fmt"
func main() {
i := 5
f := float64(i)
fmt.Printf("f is %f\n", f)
}
答案2
得分: 38
为了完整起见,这里是描述所有类型的golang文档链接。在你的情况下,它是数字类型:
uint8 所有无符号8位整数的集合(0到255)
uint16 所有无符号16位整数的集合(0到65535)
uint32 所有无符号32位整数的集合(0到4294967295)
uint64 所有无符号64位整数的集合(0到18446744073709551615)
int8 所有有符号8位整数的集合(-128到127)
int16 所有有符号16位整数的集合(-32768到32767)
int32 所有有符号32位整数的集合(-2147483648到2147483647)
int64 所有有符号64位整数的集合(-9223372036854775808到9223372036854775807)
float32 所有IEEE-754 32位浮点数的集合
float64 所有IEEE-754 64位浮点数的集合
complex64 所有具有float32实部和虚部的复数的集合
complex128 所有具有float64实部和虚部的复数的集合
byte uint8的别名
rune int32的别名
这意味着你需要使用float64(integer_value)
。
英文:
Just for the sake of completeness, here is a link to the golang documentation which describes all types. In your case it is numeric types:
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
Which means that you need to use float64(integer_value)
.
答案3
得分: 6
package main
func main() {
a := 70
afloat := float64(a)
fmt.Printf("a的类型是 %T\n", a) // 将会输出 int
fmt.Printf("afloat的类型是 %T\n", afloat) // 将会输出 float64
}
请注意,上述代码是Go语言的代码,用于将整数类型转换为浮点数类型,并打印出变量的类型。
英文:
just do these
package main
func main(){
a:= 70
afloat := float64(a)
fmt.Printf("type of a is %T\n", a) // will int
fmt.Printf("type of a is %T\n", afloat) //will float64
}
答案4
得分: 2
// ToFloat32将一个整数转换为float32类型的数值
func ToFloat32(in int) float32 {
return float32(in)
}
// ToFloat64将一个整数转换为float64类型的数值
func ToFloat64(in int) float64 {
return float64(in)
}
英文:
// 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)
}
答案5
得分: 2
正确的括号放置是关键:
package main
import (
"fmt"
)
func main() {
var payload uint32
var fpayload float32
payload = 1320
// 正确的写法
fpayload = float32(payload) / 100.0
fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
// 错误的写法
fpayload = float32(payload / 100.0)
fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
}
结果:
uint32 = 1320, float32 = 13.200000
uint32 = 1320, float32 = 13.000000
英文:
Proper parentheses placement is key:
package main
import (
"fmt"
)
func main() {
var payload uint32
var fpayload float32
payload = 1320
// works
fpayload = float32(payload) / 100.0
fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
// doesn't work
fpayload = float32(payload / 100.0)
fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
}
results:
uint32 = 1320, float32 = 13.200000
uint32 = 1320, float32 = 13.000000
答案6
得分: 1
类型转换T(),其中T是所需结果的数据类型,在Go语言中非常简单。
在我的程序中,我从用户输入中扫描一个整数i,对其进行类型转换,并将其存储在变量f中。输出打印了int
输入的float64
等效值。Go语言还提供了float32
数据类型。
代码:
package main
import "fmt"
func main() {
var i int
fmt.Println("输入一个整数:")
fmt.Scanf("%d", &i)
f := float64(i)
fmt.Printf("整数 %d 的 float64 表示为 %f\n", i, f)
}
解决方案:
>>> 输入一个整数:
>>> 232332
>>> 整数 232332 的 float64 表示为 232332.000000
英文:
Type Conversions T() where T is the desired datatype of the result are quite simple in GoLang.
In my program, I scan an integer i from the user input, perform a type conversion on it and store it in the variable f. The output prints the float64
equivalent of the int
input. float32
datatype is also available in GoLang
Code:
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)
}
Solution:
>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论