From 5eb5c2a28c3c8bd2be0297221f4da7b2f81afefd Mon Sep 17 00:00:00 2001 From: VIVIMAN Date: Fri, 15 Jul 2022 15:01:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=80=BC=E9=83=A8=E5=88=86=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- golang_learn/data_func/go_to_double/main.go | 77 +++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 golang_learn/data_func/go_to_double/main.go diff --git a/golang_learn/data_func/go_to_double/main.go b/golang_learn/data_func/go_to_double/main.go new file mode 100644 index 0000000..66b8c6a --- /dev/null +++ b/golang_learn/data_func/go_to_double/main.go @@ -0,0 +1,77 @@ +package main + +import ( + "fmt" +) + +func main() { + fmt.Printf("%d=%d\n", 1+1, 2) + fmt.Printf("%f=%f\n", 0.1+0.1, 0.2) + fmt.Printf("%f=%f\n", 0.1+0.2, 0.3) + fmt.Printf("%f=%f\n", 0.2+0.2, 0.4) + + fmt.Printf("科学计数法:%f\n", 1e3) + + var name float64 = 1.68 + var name2 = 1.2 + fmt.Printf("1 > %T, %#v, %f, %g, %v\n", name, name, name, name, name) + fmt.Printf("2 > %T, %#v, %f, %g, %v\n", name2, name2, name2, name2, name2) + + name3 := name2 + name + fmt.Printf("+ > %T, %#v, %f, %g, %v\n", name3, name3, name3, name3, name3) + name4 := name2 - name + fmt.Printf("- > %T, %#v, %f, %g, %v\n", name4, name4, name4, name4, name4) + name5 := name2 * name + fmt.Printf("* > %T, %#v, %f, %g, %v\n", name5, name5, name5, name5, name5) + name6 := name2 / name + fmt.Printf("/ > %T, %#v, %f, %g, %v\n", name6, name6, name6, name6, name6) + name = name - 1 + fmt.Printf("-1 > %T, %#v, %f, %g, %v\n", name, name, name, name, name) + name = name + 1 + fmt.Printf("+1 > %T, %#v, %f, %g, %v\n", name, name, name, name, name) + name++ + fmt.Printf("++ > %T, %#v, %f, %g, %v\n", name, name, name, name, name) + name-- + fmt.Printf("-- > %T, %#v, %f, %g, %v\n", name, name, name, name, name) + + sprintf := fmt.Sprintf("%f", name) + fmt.Printf("%s\n", sprintf) + + name9 := 1.99999999999999 + sprintf9 := fmt.Sprintf("%f", name9) + fmt.Printf("%s\n", sprintf9) + + name9 = 1.9999999 + sprintf9 = fmt.Sprintf("%f", name9) + fmt.Printf("%s\n", sprintf9) + + name9 = 1.999999 + sprintf9 = fmt.Sprintf("%f", name9) + fmt.Printf("%s\n", sprintf9) + + fmt.Printf("%d\n", name == 1.680000) + fmt.Printf("%d\n", name == 1.6799999999999997) + + /* + %v 按默认格式输出 + %+v 在%v的基础上额外输出字段名 + %#v 在%+v的基础上额外输出类型名 + + %% %字面量 + %b 一个二进制整数,将一个整数格式转化为二进制的表达方式 + %c 一个Unicode的字符 + %d 十进制整数 + %o 八进制整数 + %x 小写的十六进制数值 + %X 大写的十六进制数值 + %U 一个Unicode表示法表示的整型码值 + %s 输出以原生的UTF8字节表示的字符,如果console不支持utf8编码,则会乱码 + %t 以true或者false的方式输出布尔值 + %v 使用默认格式输出值,或者如果方法存在,则使用类性值的String()方法输出自定义值 + %T 输出值的类型 + + %f 有小数而无指数 fmt.Printf("%f", 10.2) > 10.200000 + %g 根据情况选择 %e 或者 %f 以产生更紧凑的(无末尾的0)输出 fmt.Printf("%f", 10.20) > 10.2 + %G 根据情况选择 %E 或者 %f 以产生更紧凑的(无末尾的0)输出 fmt.Printf("%f", 10.20+2i) > 10.2+2i + */ +}