[Java]double初始化問題


如下:

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的另一種存儲類型而已!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM