Tôi có hai số nguyên x
và y
. Tôi cần tính toán x/y
và kết quả là tôi muốn nổi lên. Ví dụ như kết quả của 3/2
Tôi muốn có 1.5. Tôi nghĩ rằng cách đơn giản nhất (hoặc chỉ) để thực hiện là chuyển đổi x
và y
thành loại phao. Thật không may, tôi không thể tìm thấy một cách dễ dàng để làm điều đó. Bạn có thể giúp tôi với điều đó không?Làm cách nào để chuyển đổi số nguyên thành float trong Java?
Trả lời
Bạn chỉ cần đúc ít nhất một trong các toán hạng để một float:
float z = (float) x/y;
hoặc
float z = x/(float) y;
hoặc (không cần thiết)
float z = (float) x/(float) y;
Đây có phải là hiệu quả hơn, hơn: float z = (1.0 * x)/y; ? Là chuyển đổi float nội bộ hiệu quả hơn so với phép nhân? Tnx! – MSquare
Tôi không biết, nhưng tôi nghĩ rằng nó không liên quan 99% hoặc nhiều hơn thời gian. Nó thậm chí không từ xa sẽ là một nút cổ chai. Nếu bạn thực sự quan tâm, [điểm chuẩn nó cho mình.] (Http://stackoverflow.com/q/504103/139010) –
Đầu tiên và thứ hai sẽ gây ra lỗi trên một số thiết bị cánh tay, đảm bảo bạn truyền cả hai số nguyên. –
Sau đây là cách bạn có thể làm điều đó:
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 3;
int y = 2;
Float fX = new Float(x);
float res = fX.floatValue()/y;
System.out.println("res = "+res);
}
Hẹn gặp bạn!
Sử dụng loại trình bao bọc ('Float') là hoàn toàn không cần thiết cho việc này. –
Bạn hoàn toàn đúng, câu trả lời của bạn tốt hơn nhiều :) – LaGrandMere
Vui lòng [không sử dụng chữ ký hoặc khẩu hiệu] (http://stackoverflow.com/faq#signatures) trong bài đăng của bạn. – meagar
Bạn không nên sử dụng phao trừ khi bạn phải thực hiện. Trong 99% trường hợp, gấp đôi là một lựa chọn tốt hơn.
int x = 1111111111;
int y = 10000;
float f = (float) x/y;
double d = (double) x/y;
System.out.println("f= "+f);
System.out.println("d= "+d);
in
f= 111111.12
d= 111111.1111
Sau @ bình luận của Matt.
float có độ chính xác rất ít (6-7 chữ số) và cho thấy lỗi làm tròn đáng kể khá dễ dàng. double có 9 chữ số chính xác khác. Chi phí sử dụng gấp đôi thay vì phao là đặc biệt trong 99% các trường hợp tuy nhiên chi phí của một lỗi tinh vi do lỗi làm tròn cao hơn nhiều. Vì lý do này, nhiều nhà phát triển khuyên bạn không nên sử dụng dấu phẩy động và khuyên bạn nên sử dụng BigDecimal.
Tuy nhiên tôi thấy rằng đôi có thể được sử dụng trong hầu hết các trường hợp cung cấp làm tròn hợp lý được sử dụng.
Trong trường hợp này, int x có độ chính xác 32 bit trong khi phao có độ chính xác 24 bit, thậm chí chia cho 1 có thể có lỗi làm tròn. đôi mặt khác có độ chính xác 53 bit, quá đủ để có kết quả chính xác hợp lý.
Bạn nên xây dựng trên _why_ 'double' tốt hơn' float'. –
Sameer:
float l = new Float(x/y)
sẽ không hoạt động, vì nó sẽ tính toán phân chia số nguyên của x và y đầu tiên, sau đó xây dựng một phao từ nó.
float result = (float) x/(float) y;
Ngữ nghĩa là ứng cử viên tốt nhất.
Câu trả lời của bạn phải là nhận xét. Sameer sẽ không nhận được thông báo nào về bài đăng của bạn. Về mặt ngữ nghĩa, chuyển đổi cả hai ints để float trước khi tính toán kết quả là không cần thiết - do đó nó không phải là tốt hơn, hơn tranforming chỉ là một. Nó cho một ấn tượng sai lầm, và do đó là kém hơn, imho. –
Bạn chỉ cần chuyển các giá trị đầu tiên nổi, trước khi nó được tham gia vào việc tính toán thêm:
float z = x * 1.0/y;
// Các số nguyên Tôi muốn chuyển đổi
int myInt = 100;
// đúc nguyên để nổi
float newFloat = (float) myInt
- 1. Java chuyển đổi float thành số nguyên
- 2. Làm thế nào để chuyển đổi giá trị float thành số nguyên trong php?
- 3. Cách chuyển đổi mảng 4 byte thành float trong java
- 4. Java Chuyển đổi số nguyên thành số nguyên hex
- 5. Chuyển đổi từ kép thành float trong Java
- 6. Làm thế nào để chuyển đổi một số nguyên sang float trong Delphi?
- 7. Làm thế nào để phát hiện tràn khi chuyển đổi chuỗi thành số nguyên trong java
- 8. Làm thế nào để chuyển đổi Char thành Float
- 9. Làm thế nào để chuyển đổi Float (Wrapper class) thành lớp wrapper Integer?
- 10. Chuyển đổi float [] thành byte [] thành float [] lần nữa
- 11. Ngày để chuyển đổi số nguyên trong Java
- 12. Làm thế nào để chuyển đổi từ chuỗi định dạng phân số thành thập phân hoặc Float trong Java?
- 13. Chuyển đổi số được viết thành từ thành số nguyên?
- 14. Mẫu Django: Chuyển đổi float thành số nguyên nếu kết thúc bằng 0,0?
- 15. Chuyển đổi chuỗi thành số nguyên/phao trong Haskell?
- 16. Làm cách nào để chuyển đổi giữa Float và [Word8]?
- 17. Làm cách nào để chuyển đổi số nhị phân thành BigInteger trong Java?
- 18. C#: Chuyển đổi ushort thành float
- 19. Làm thế nào tôi có thể chuyển đổi một chuỗi lớn thành số nguyên trong java?
- 20. Cách chuyển đổi chuỗi thành số nguyên trong UNIX
- 21. Làm cách nào để chuyển đổi chuỗi thành danh sách các số nguyên trong Haskell
- 22. Làm cách nào để chuyển đổi tên tháng thành số nguyên tháng trong Ruby?
- 23. Cách chuyển đổi chuỗi thành số nguyên trong h: selectOneMenu
- 24. Làm thế nào để chuyển đổi chuỗi số thành số nguyên trong một danh sách?
- 25. mssql chuyển đổi varchar thành float
- 26. Ruby - Chuyển đổi số nguyên thành chuỗi
- 27. Chuyển đổi số nguyên thành chuỗi
- 28. Rails Di chuyển để chuyển đổi chuỗi thành số nguyên?
- 29. Chuyển đổi std :: string thành số nguyên
- 30. Làm thế nào để chuyển đổi một giá trị số nguyên thành chuỗi?
float result = ((float) x)/y? – mibollma
kiểm tra điều này: http://xahlee.org/java-a-day/casting.html – fasseg
có thể trùng lặp của [Java: phân chia 2 int làm cho một int?] (Http://stackoverflow.com/questions/787700/ java-dividing-2-ints-make-an-int) – dogbane