簡體   English   中英

將Double轉換為Int的結果的Java標准

[英]Java Standard On Result Of Casting A Double To An Int

說我有以下...

double d = 1.6;
int q = ( ( int ) d );

是否會始終根據Java標准舍棄小數點,還是會根據標准舍入或舍去(存在或多或少)?

是的,它將刪除小數點。 這意味着它將四舍五入到零 ,因此如果它為正數將四舍五入,但是如果它為負數則四舍五入。

參見JLS中的第5.1.3節

否則,如果浮點數不是無窮大,則將浮點值舍入為整數值V,並使用IEEE 754舍入為零模式(第4.2.3節 )舍入為零。

double轉換為int始終會將值限制為小於該整數的最大整數,但是請嘗試以下操作:

int q = (int) Math.round(d); // rounded instead of floored

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM