float & double & 格式化输出

本文详细介绍了Java中float和double两种浮点数类型的内存占用情况、精度区别及使用注意事项,包括数值赋值规则、类型转换导致的精度损失问题,并提供了格式化输出的实例。
部署运行你感兴趣的模型镜像

float 4个字节 (32位)
double 8个字节 (64位)

赋值时,float类型,必须在直接量后面标明f,否则将默认为double类型。
double类型有更高的精度,但是占据更多资源,运算速度也将慢于float。

double k=1.3f;
System.out.println(k);
//output: 1.2999999523162842

float—>double转换会扩充精度的,float的精度可能为0.0000001,而double的精度可能为0.0000000000001这样转换后可能会有0.0000001 - 0.000000000000…

消除这种误差考虑使用BigDecimal

格式化输出:printf 和format 是等价的。
使用printf 即可:
System.out.printf(“%d\n%f”, 10,2f);

%9.4f 整个数的最小长度是9(小数点也占一位),小数部分最大长度4(四舍五入原则),长度不够右对齐。
%4d 整个数长度4位,长度不够右对齐。
%04d 整个数长度4位,长度不够将在其前面补零时期长度够4位。
%-4d 左对齐。(其他都一样)
%3.4s 字符串,最小长度3,最大长度4,超过最大长度之后的字母将删掉;长度不够,右对齐。
%1d long 型输出 (加的是数字1)
%1f double 型输出 (加的是数字1)
%u 十进制无符号整形
%c char型输出

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### C语言中 `float` 和 `double` 类型的输入输出格式 #### 输入格式 对于浮点数,在C语言中可以使用不同的格式说明符来读取不同类型的浮点数值。当处理单精度浮点数(`float`)时,通常会采用 `%f` 或者更精确地通过 `%g` 来匹配可能存在的科学计数法形式的数据;而对于双精度浮点数 (`double`) 同样适用这些格式化字符串[^2]。 ```c #include <stdio.h> int main() { float f; double d; printf("Enter a floating-point number (for float): "); scanf("%f", &f); // 使用 %f 对应 float 类型变量 printf("Enter another floating-point number (for double): "); scanf("%lf", &d); // 注意这里需要使用 %lf 来对应 double 类型变量 return 0; } ``` #### 输出格式 在打印浮点数到屏幕或其他流上时,可以根据需求调整显示的小数位数以及整体宽度等属性。下面是一些常见的例子: - **固定小数点表示**:可以通过指定 `.N` 的方式控制保留 N 位小数。 ```c printf("%.2f\n", someFloatValue); /* 打印 two decimal places */ printf("%.15f\n", someDoubleValue); /* 显示 up to fifteen digits after the point */ ``` - **指数记号(E notation)**:适合非常大或非常小的数值展示 ```c printf("%e\n", veryLargeOrSmallNumber); // 或者为了更好的可读性加上固定的总长度和小数位数 printf("%+12.4e\n", valueWithSignAndPadding); ``` - **通用格式(G or g notation)**:自动选择最合适的表达方式——要么是普通的定点格式,要么是在必要时候转为 E 记号 ```c printf("%g\n", generalFormatNumber); ``` 以上方法适用于大多数情况下对 `float` 及 `double` 数据类型的正确输入与优雅输出操作[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值