十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Go中数值类型可细分为整数、浮点数、复数三种,每种都具有不同的大小范围和正负支持。
成都创新互联公司是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,微信小程序,十年建站对成都石牌坊等多个领域,拥有多年的网站推广经验。
整型分为两大类
Go提供了有符号和无符号的整数类型,同时提供四种大小不同的整数类型。
取值范围
等价类型
特殊整型
int 和 uint 分别对应特定CPU平台的字长(机器字大小),大小范围在 32bit 或 64bit 之间变化,实际开发中由于编译器和硬件不同而不同。
进制转换
转换函数
使用注意
字节长度
Golang提供了两种精度的浮点数分别为 float32 和 float64 ,它们的算术规范由IEEE754浮点数国际标准定义,IEEE754浮点数标准被现代CPU支持。
float32 类型的浮点数可提供约6个十进制数的精度, float64 类型的浮点数可提供约15个十进制数的精度。通常会优先选择使用 float64 ,因为 float32 累计计算误差会比较容易扩散。
计算机中复数(complex)由两个浮点数表示,一个表示实部(real)一个表示虚部(imag)。
Go语言中复数的值由三部分组成 RE + IMi ,分别是实数部分 RE 、虚数部分 IM 、虚数单位 i , RE 和 IM 均为 float 。
Go语言提供两种类型的复数,分别是 complex64 即32位实数和虚数, complex128 即64位实数和虚数, complex128 为复数的默认类型。
复数声明
z 表示复数的变量名, complex128 表示复数类型, complex() 内置函数用于为复数赋值。 x 和 y 分别表示构成该复数的两个 float64 类型的值, x 为实部, y 为虚部。
简写形式
对于 z 值可通过内置函数 real(z) 获取该复数的实部,使用 imag(z) 获取虚部。
type_name(expression)
float跟int可以互转,但是会丢失所有精度。
func AppendBool(dst []byte, b bool) []byte
AppendBool 根据 b 的值将“true”或“false”附加到 dst 并返回扩展缓冲区。
func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
AppendFloat 将由 FormatFloat 生成的浮点数 f 的字符串形式附加到 dst 并返回扩展缓冲区。
func AppendInt(dst []byte, i int64, base int) []byte
AppendInt 将由 FormatInt 生成的整数i的字符串形式附加到 dst 并返回扩展缓冲区。
func AppendQuote(dst []byte, s string) []byte
AppendQuote 将由 Quote 生成的代表 s 的双引号 Go 字符串文字附加到 dst 并返回扩展缓冲区。
func AppendQuoteRune(dst []byte, r rune) []byte
AppendQuoteRune 将由 QuoteRune 生成的表示符文的单引号 Go 字符文字附加到 dst 并返回扩展缓冲区。
func AppendQuoteRuneToASCII(dst []byte, r rune) []byte
AppendQuoteRuneToASCII 将由 QuoteRuneToASCII 生成的代表该符文的单引号 Go 字符文字附加到 dst 并返回扩展缓冲区。
func AppendQuoteRuneToGraphic(dst []byte, r rune) []byte
AppendQuoteRuneToGraphic 将由 QuoteRuneToGraphic 生成的表示符文的单引号 Go 字符文字附加到 dst 并返回扩展缓冲区。
func AppendQuoteToASCII(dst []byte, s string) []byte
AppendQuoteToASCII 将由 QuoteToASCII 生成的代表 s 的双引号 Go 字符串文字附加到 dst 并返回扩展缓冲区。
func AppendQuoteToGraphic(dst []byte, s string) []byte
AppendQuoteToGraphic 将由 QuoteToGraphic 生成的代表 s 的双引号 Go 字符串文字附加到 dst 并返回扩展缓冲区。
func AppendUint(dst []byte, i uint64, base int) []byte
AppendUint 将由 FormatUint 生成的无符号整数 i 的字符串形式附加到 dst 并返回扩展缓冲区。
func Atoi(s string) (int, error)
Atoi 返回 ParseInt(s, 10, 0) 转换为 int 类型的结果。
func CanBackquote(s string) bool
CanBackquote 报告字符串 s 是否可以不改变为单行反引号字符串,而不包含 tab 以外的控制字符。
func FormatBool(b bool) string
FormatBool 根据 b 的值返回“true”或“false”
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
FormatFloat 根据格式 fmt 和 precision prec 将浮点数f转换为字符串。它将结果进行四舍五入,假设原始数据是从 bitSize 位的浮点值获得的(float32为32,float64为64)。
格式 fmt 是 'b'(-ddddp±ddd,二进制指数),'e'(-d.dddde±dd,十进制指数),'E'(-d.ddddE±dd,十进制指数),'f'(-ddd.dddd,无指数),'g'('e'表示大指数,'f'表示否则)或 'G'('E'表示大指数,否则'f')。
precision prec 控制由 'e','E','f','g' 和 'G' 格式打印的位数(不包括指数)。对于 'e','E' 和 'f',它是小数点后的位数。对于 'g' 和 'G' 这是总位数。特殊精度-1使用必需的最小位数,以便 ParseFloat 完全返回 f 。
func FormatInt(i int64, base int) string
FormatInt 返回给定基数中的i的字符串表示,对于2 = base = 36.结果对于数字值 = 10使用小写字母 'a' 到 'z' 。
func FormatUint(i uint64, base int) string
FormatUint 返回给定基数中的 i 的字符串表示,对于2 = base = 36.结果对于数字值 = 10使用小写字母 'a' 到 'z' 。
func IsGraphic(r rune) bool
IsGraphic 报告符文是否被 Unicode 定义为 Graphic。这些字符包括类别 L,M,N,P,S 和 Z 中的字母,标记,数字,标点,符号和空格。
func IsPrint(r rune) bool
IsPrint 报告该符文是否被 Go 定义为可打印,其定义与 unicode.IsPrint 相同:字母,数字,标点,符号和 ASCII 空格。
func Itoa(i int) string
Itoa 是 FormatInt(int64(i), 10) 的缩写。
func ParseBool(str string) (bool, error)
ParseBool 返回字符串表示的布尔值。它接受1,t,T,TRUE,true,True,0,f,F,FALSE,false,False。任何其他值都会返回错误。
func ParseFloat(s string, bitSize int) (float64, error)
ParseFloat 将字符串 s 转换为浮点数,精度由 bitSize:32指定,float32为64; float64为64。当 bitSize = 32时,结果仍然具有 float64 类型,但可以在不更改其值的情况下将其转换为 float32。
如果s格式良好且接近有效的浮点数,则 ParseFloat 返回使用 IEEE754 无偏舍入舍入的最近浮点数。
ParseFloat 返回的错误具有具体类型 * NumError 并包含 err.Num = s。
如果 s 在语法上不是格式良好的,ParseFloat 返回 err.Err = ErrSyntax。
如果 s 在语法上格式良好,但距离给定大小的最大浮点数大于1/2 ULP,则 ParseFloat 返回 f =±Inf,err.Err = ErrRange。
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt 解释给定基础(2到36)中的字符串 s 并返回相应的值 i。如果 base == 0,则基数由字符串的前缀隐含:base 16代表“0x”,base 8代表“0”,否则以10为底数。
bitSize 参数指定结果必须适合的整数类型。位大小 0,8,16,32 和 64 对应于 int,int8,int16,int32 和 int64。
ParseInt 返回的错误具有具体类型 * NumError 并包含err.Num = s。如果s为空或包含无效数字,则 err.Err = ErrSyntax,返回值为0; 如果与s对应的值不能用给定大小的有符号整数表示,则 err.Err = ErrRange,返回的值是相应 bitSize 和符号的最大幅度整数。
func ParseUint(s string, base int, bitSize int) (uint64, error)
ParseUint 就像 ParseInt,但是对于无符号数字。
func Quote(s string) string
Quote 返回一个双引号的 Go 字符串字面表示s。返回的字符串使用 Go 转义序列 (\t, \n, \xFF, \u0100) 作为 IsPrint 定义的控制字符和非可打印字符。
func QuoteRune(r rune) string
QuoteRune 返回一个表示符文的单引号 Go 字符。返回的字符串使用 Go 转义序列(\t, \n, \xFF, \u0100) 作为 IsPrint 定义的控制字符和非可打印字符。
func QuoteRuneToASCII(r rune) string
QuoteRuneToASCII 返回表示符文的单引号 Go 字符。对于非 ASCII 字符和 IsPrint 定义的非可打印字符,返回的字符串使用 Go 转义序列 (\t, \n, \xFF, \u0100)。
func QuoteRuneToGraphic(r rune) string
QuoteRuneToGraphic 返回代表符文的单引号 Go 字符。对于非 ASCII 字符和 IsGraphic 定义的非可打印字符,返回的字符串使用Go转义序列 (\t, \n, \xFF, \u0100)。
func QuoteToASCII(s string) string
QuoteToASCII 返回一个代表 s 的双引号 Go 字符串。对于非 ASCII 字符和 IsPrint 定义的非可打印字符,返回的字符串使用 Go 转义序列 (\t, \n, \xFF, \u0100) 。
func QuoteToGraphic(s string) string
QuoteToGraphic 返回一个代表 s 的双引号 Go 字符串。对于非 ASCII 字符和 IsGraphic 定义的非可打印字符,返回的字符串使用 Go 转义序列 (\t, \n, \xFF, \u0100)。
func Unquote(s string) (string, error)
Unquote 将 s 解释为单引号,双引号或反引号的 Go 字符串文字,返回引用的字符串值。(如果 s 是单引号,它将是一个 Go 字符字面量; Unquote 会返回相应的一个字符字符串。)
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:double a = 2.71828;printf("%d", int(a));。
3、编译器运行test.cpp文件,此时成功将浮点数2.71828转换为了整数2。
因为你的a做了显式转换也还是有浮点数的形式的,但值确实是变成3了,关键在于双精度浮点数和整型数的差别和printf函数采用的栈输出结构;浮点型的位数比整型高,所以a输入进去以后,有效位数较双精度浮点数较小,因此存在着一堆0值,如:00000000003.1428570000,00000000000003,然而在读时你采用整型,根据编译器的差别可能只读前8位或前四位,你这个数前面那么多0,%d读出来的肯定也是0嘛。其次,int(a)是c++的整型析构函数((int)a才是强制转换(我说的显示转换)),作用是直接提取a的整数部分,用这个做浮点数取整还准确一些,推荐用int(a)以%d输出即可。
计算出的浮点数,转换成0~27648.0,然后使用rnd命令取整输出就可以了。
C语言中,浮点型转换为整型可以用:强制类型转换、自动类型转换,例如:(int)3.14、int a = 3.14。
1、强制类型转换
强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式),其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。
例如: (double) a 把a转换为双精度浮点型,(int)(x+y) 把x+y的结果转换为整型。
2、自动类型转换
(1)执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等。
(2)赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它。
(3)函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。
(4)函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
扩展资料:
C语言中常用的数据类型:
1、int:整型
2、float:单精度浮点型
3、double:双精度浮点型
4、char:字符型
5、char *:字符指针型
参考资料来源:百度百科-强制类型转换