Printing two digits after decimal in go

huangapple go评论81阅读模式
英文:

Printing two digits after decimal in go

问题

你可以使用Go语言中的fmt.Printf函数来实现打印小数点后两位并进行四舍五入的功能。下面是一个示例代码:

package main

import "fmt"

func main() {
    num1 := 1.222225
    num2 := 1.356

    fmt.Printf("%.2f\n", num1)
    fmt.Printf("%.2f\n", num2)
}

运行以上代码,你将得到以下输出:

1.22
1.36

这样就实现了打印小数点后两位并进行四舍五入的要求。

英文:

I want to print two digits after decimal after rounding in GO language..
e.g 1.222225 should be printed as 1.22
1.356 should be printed as 1.36

How can i do it?

答案1

得分: 27

你可以这样写:

fmt.Printf("%.2f", 1.22225)

(参见 http://golang.org/pkg/fmt/)。

英文:

You can write:

fmt.Printf("%.2f", 1.22225)

(See http://golang.org/pkg/fmt/.)

答案2

得分: 8

如果你使用fmt.Printf函数,可以在格式化字符串中使用语法来打印指定精度的浮点数,如下所示。一般的语法是%.[数字位数]f

示例:

fmt.Printf("%.2f", 1.2222225) // 输出:1.22

fmt.Printf("%.2f", 1.356) // 输出:1.36

需要注意的是,四舍五入不会进行"进位":

fmt.Printf("%.1f", 1.346)

输出结果为1.3,而不是1.4。此外,负数的行为与预期相同:

fmt.Printf("%.2f", -1.356) // 输出:-1.36

英文:

If you use the fmt.Printf function there is syntax in the formatting string that lets you print floats to a given level of precision like this. The general syntax is %.[numberofdigits]f.

Examples:

fmt.Printf("%.2f" 1.2222225) // output: 1.22

fmt.Printf("%.2f", 1.356) // output: 1.36

One thing to note is that the round doesn't "carry"

fmt.Printf("%.1f", 1.346)

Will output 1.3, not 1.4. Additionally, negative numbers will behave as expected:

fmt.Printf("%.2f", -1.356) // output: -1.36

答案3

得分: 0

你可能想要使用具有固定.00精度的Decimal64p2类型的十进制数,可以在这里找到更多信息:https://github.com/strongo/decimal

fmt.Printf("%.1f", 1.346)相比,它可以正确地进行四舍五入。

它非常适合存储精确的货币金额。

英文:

You may want to use a Decimal64p2 type of decimal with fixed .00 precision - https://github.com/strongo/decimal

Comparing to fmt.Printf("%.1f", 1.346) it will round correctly.

It is efficient for storing exact amounts of money.

huangapple
  • 本文由 发表于 2014年2月16日 14:18:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/21808007.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定