不同的浮点数类型
尽管4字节的浮点数可表达相当大的数值,但对于人类而言,总不够用。一般而言,浮点数有3种类型,单精度的float和双精度的double以及更长的long double, 可参考:数据类型大小
不同语言的浮点数类型
- C/ObjC/C++: float / double / long double
- 仓颉:Float16 / Float32 / Float64
- C#: float double decimal
- Pascal: real single double extended comp
浮点数形式
- 十进制形式: 例如12.34
- C/ObjC/C++/仓颉/C#/Java/Pascal 等
- 指数形式:1.5E2 (格式aEb,a和b都是十进制数,a可包含小数点)
- C/ObjC/C++/仓颉/C#/Java/Pascal 等
特别的,Pascal不允许1.或者.2E5这种形式,小数点前后必须有数字。这与普通C语言有差异。
浮点数类型的差异
- C语言为了区分float和double, 输入时用%f代表float, %lf代表double, 但对于输出%f和%lf作用相同。
- C99引入了long double (%Lf), 注意并不意味long double一定比double要长,根据编译器选择。
- C# float用f或者F后缀,double用d或者D后缀。
浮点数字面量区分单精度或双精度
- C/ObjC/C++: 浮点数后缀f或F代表单精度float,不加默认是double.
- 仓颉:f16 / f32 / f64后缀区分三种浮点数。
浮点数默认转换
- C语言中float类型是默认转换成double去处理,如下图所示。
浮点数格式串
- C/ObjC/C++ %f代表基本浮点数类型,%e是科学计数法格式,%g是简短模式。
C语言是如何区分开%f和%lf的?
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。