首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >怎样以小数点后位数区分double 与flaot,foalt怎样声明。

怎样以小数点后位数区分double 与flaot,foalt怎样声明。

作者头像
zhangjiqun
发布于 2024-12-16 13:56:00
发布于 2024-12-16 13:56:00
5200
举报
文章被收录于专栏:计算机工具计算机工具

补充:一个小知识点:

int y=1.5f    表示1.5是float类型,在赋给y,但是y是int型,最后y=1;

#include <iostream> using namespace std; int main() {     float y=123.4567;     float yy=123456;//不管小数点,有线数字6位     double x=123.4567;     double xx=123456;//不管小数点,有线数字6位,,不管double还是float有效数字6位     float ceshi1=1234567;     double ceshi2=1234567;//没有小数点有效数字6位

    cout << x<< endl;     cout << y<< endl;     cout << xx<< endl;     cout << yy<< endl;     cout << ceshi1<< endl;     cout << ceshi2<< endl;     return 0; }

补充:这里不存在四舍五入,小数直接干掉(毕竟是机器,不然四舍五入还得写代码)

结果:

代码语言:javascript
复制
123.457
123.457
123456
123456
1.23457e+06
1.23457e+06

不论double还是float的有效位数都是6,在小数点后面保留的位数没什么区别,他们的却别在于物理存储;但是float有些不同;

例子:

float型float f=3.4是否正确?

不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f 在java里面,没小数点的默认是int,有小数点的默认是 double; int 转成 long 系统自动作没有问题,因为后者精度更高 double 转成 float 就不能自动做了,所以后面的加上个 f

float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间

double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间

当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f

例如:float a=1.3;

则会提示不能将double转化成float  这成为窄型转化

如果要用float来修饰的话,则应该使用float a=1.3f

注意float是8位有效数字,第7位数字将会产生四舍五入

所以如果一个float变量 这样定义:  float a=1.32344435;   则第7位将产生四舍五入(5及5以下的都将舍去)   

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档