เขียนโค้ดเลขยกกำลังของภาษา Java โดยใช้คำสั่ง Math.pow แต่พอรันแล้วเกิด Error ว่า Test.java:11: error: incompatible types: possible lossy conversion from double to float แบบนี้ต้องแก้ไขอย่างไร
import java.lang.Math;
class Test {
public static void main(String args[]){
float f = 10;
float p = 0;
p = Math.pow( 10, 2 );
System.out.println( f );
}
}
วิธีแก้ไข
ปัญหานี้เกิดจากคำสั่ง Math.pow ขอภาษา Java จะคืนค่ากลับมาเป็นข้อมูลชนิด double ซึ่งตัวแปร p ที่รับค่าเป็นชนิด float จึงทำให้เกิดข้อผิดพลาดดังกล่าว แนะนำเปลี่ยน float เป็น double
import java.lang.Math;
class Test {
public static void main(String args[]){
float f = 10;
double p = 0;
p = Math.pow( 10, 2 );
System.out.println( f );
}
}
ผลลัพธ์
10.0