将科学记数法转换为十进制数

我有一个数字以科学记数法6.316159832682479e-06存储为float64,将其转换为正常十进制数(0.000006316159832682479)并仍将其保留在float64中的最佳方法是什么。我需要正常的小数位数进行进一步的计算和 API 调用。

...
fmt.Printf("%v,%T",ol,ol)
...

Prints: 6.34e-06,float64


30秒到达战场
浏览 84回答 1
1回答

梦里花落0921

正如其他人所指出的,您无需转换该值以进行任何进一步的计算。您在问题中提供的两个数字描述了相同的 float64 值。对数字的任何计算都将产生相同的结果,无论其格式如何。至于格式化该值的字符串表示形式,您可以使用函数(docs)完全控制浮点数的格式。strconv.FormatFloat()该示例将打印不带任何指数的数字的十进制表示形式:package mainimport (    "fmt"    "strconv")func main() {    d := 0.000006316159832682479    fmt.Println(strconv.FormatFloat(d, 'f', -1, 64))}另请注意,使用其他格式字符串可以实现类似的结果。请参阅此处的包文档。fmt.Sprintf()fmt
打开App,查看更多内容
随时随地看视频慕课网APP