📌  相关文章
📜  golang 将浮点数截断到小数点后 1 位 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:15:23.602000             🧑  作者: Mango

Golang 将浮点数截断到小数点后 1 位

当我们使用Golang进行浮点数运算时,经常需要将浮点数截断到小数点后特定位数以符合需求。本文将介绍如何将浮点数截断到小数点后1位。

方法一:使用strconv.FormatFloat()函数

我们可以使用strconv.FormatFloat()函数将一个float64类型的浮点数转换为字符串,其中第二个参数是小数的精度。例如,当第二个参数为1时,则会将浮点数截断到小数点后1位:

package main

import (
	"fmt"
	"strconv"
)

func truncFloat(input float64) float64 {
    value, _ := strconv.ParseFloat(strconv.FormatFloat(input, 'f', 1, 64), 64)
    return value
}

func main() {
    input := 3.1415926535
    output := truncFloat(input)
    fmt.Printf("%.1f\n", output)
}

输出结果为:

3.1

可以看到,输入的浮点数3.1415926535被截断到小数点后1位,并且转换为了3.1。

方法二:使用math.Round()函数

我们也可以使用Golang内置的math.Round()函数来将浮点数四舍五入至特定精度。首先,我们需要将浮点数乘以10的n次方,然后使用math.Round()函数将结果四舍五入,并再次将结果除以10的n次方来得到最终结果。当n为-1时,则会将浮点数截断到小数点后1位:

package main

import (
	"fmt"
	"math"
)

func truncFloat(input float64) float64 {
    return math.Round(input * 10) / 10
}

func main() {
    input := 3.1415926535
    output := truncFloat(input)
    fmt.Printf("%.1f\n", output)
}

输出结果为:

3.1

可以看到,这种方法同样能将浮点数3.1415926535截断到小数点后1位,并转换为3.1。

以上便是两种将浮点数截断到小数点后1位的方法。根据实际需求选择合适的方法即可。