我有一個數字以科學記數法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 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消