2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
聽(tīng)起來(lái)只有字符串表示對(duì)您很重要,而 fmt 包確實(shí)為您提供了:
fmt.Printf("%1.4f", rand.Float64())
所以是的,您仍然需要包裝此調(diào)用以指定小數(shù)點(diǎn)后的位數(shù)。
func RandomDigits(number int) string {
return fmt.Sprintf("%1." + strconv.Itoa(number) + "f", rand.Float64())
}

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
我不知道這樣的功能,但是很容易自己實(shí)現(xiàn)(play):
// Truncate the number x to n decimal places
//
// +- Inf -> +- Inf; NaN -> NaN
func truncate(x float64, n int) float64 {
return math.Trunc(x * math.Pow(10, float64(n))) * math.Pow(10, -float64(n))
}
將數(shù)字n小數(shù)位向左移動(dòng),截?cái)嘈?shù)位,將數(shù)字n位向右移動(dòng)。
如果您想向用戶(hù)展示您的號(hào)碼,那么您將在某一時(shí)刻將號(hào)碼轉(zhuǎn)換為字符串。當(dāng)您這樣做時(shí),您不應(yīng)使用此方法,而應(yīng)使用Tyson指出的字符串格式。例如,由于浮點(diǎn)數(shù)不精確,可能存在舍入錯(cuò)誤:
truncate(0.9405090880450124,3) // 0.9400000000000001
- 2 回答
- 0 關(guān)注
- 365 瀏覽
添加回答
舉報(bào)