[Java]double初始化问题

本文详细解释了在编程中使用双精度初始化时容易出现的错误,并提供了正确的初始化方法,确保数值计算的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


如下:

1. 直接初始化

double[][] embossFilter = {{-1/9, 0, 1/9}, {-1/9, 1/9, 1/9}, {-1/9, 0, 1/9}};
2
. 赋值初始化

double l = 1/9;
double[][] linearFilter = {{l, l, l}, {l, l, l}, {l, l, l}};
以上两种初始化结果均得到0.0,正确方法如下:

double l = (double)1/9, b1 = (double)1/13, b2 = (double)5/13;
double[][] linearFilter = {{l, l, l}, {l, l, l}, {l, l, l}};
注意:两个整数无论如何运算,在赋值给double时一定要强制类型转换!否则两个数的计算结果首先保存为int型,然后才会被转化成double!这样的double只是int的另一种存储类型而已!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值