我有一个数字以科学记数法6.316159832682479e-06存储为float64,将其转换为正常十进制数(0.000006316159832682479)并仍将其保留在float64中的最佳方法是什么。我需要正常的小数位数进行进一步的计算和 API 调用。...
fmt.Printf("%v,%T",ol,ol)
...
Prints: 6.34e-06,float64
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
正如其他人所指出的,您无需转换该值以进行任何进一步的计算。您在问题中提供的两个数字描述了相同的 float64 值。对数字的任何计算都将产生相同的结果,无论其格式如何。
至于格式化该值的字符串表示形式,您可以使用函数(docs)完全控制浮点数的格式。strconv.FormatFloat()
该示例将打印不带任何指数的数字的十进制表示形式:
package main
import (
"fmt"
"strconv"
)
func main() {
d := 0.000006316159832682479
fmt.Println(strconv.FormatFloat(d, 'f', -1, 64))
}
另请注意,使用其他格式字符串可以实现类似的结果。请参阅此处的包文档。fmt.Sprintf()fmt
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消