![](/img/trans.png)
[英]Error: incompatible types: possible lossy conversion from double to float
[英]Java: incompatible types, possible lossy conversion from double to float
當我嘗試編譯以下代碼時,為什么會收到此錯誤消息?
float a = 1/0.1;
System.out.println(a);
或者
float b = 1/0.002;
System.out.println(b);
不兼容的類型:從 double 到 float 的可能有損轉換
我有溢出嗎? 我希望了解這背后的理論。 提前致謝。
使用浮點文字:
float a = 1f / 0.1f;
0.1
和0.002
是double
文字。 Java 的double
類型比float
類型具有更高的精度。 因此,當您從double
轉換為float
時,可以通過將其四舍五入到float
中可表示的最接近的值來更改數字。 使用十進制作為類比,將四位數字.1234 分配給兩位數字類型將產生一個不同的數字,0.12。
當您通過分配給float
變量隱式執行此轉換時,編譯器會告訴您可能會丟失信息。 通過使用強制轉換,您可以告訴編譯器轉換為不太精確的格式是有意的。 或者通過使用諸如0.1f
和0.002f
類的float
文字,您可以在整個過程中使用float
值並避免轉換。
通常,選擇一種類型, float
型或double
精度型,並在整個計算中使用它,用於文字和變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.