[英]Rounding Down to nearest whole number - am I cheating or is this more than adequate?
本質上,如果生成的數字是 2.3,那么如果我減去 0.5,它將是 1.8,但舍入函數將使它成為 2,這就是我想要的。 或者,如果答案是 2.99999 並且我減去 0.5,那么答案是 2.49999,它應該四舍五入到 2,這就是我想要的。 我的問題是,如果答案是偶數 2 並且我減去 0.5,那么答案現在是 1.5,所以它仍然會四舍五入為 2。
temp1_1= Math.round(temp2_2/(360/temp_value)-.5);
這是我的代碼行。
已經有一個功能可以做到這一點。 它被稱為地板:
double d = Math.floor(2.9999) //result: 2.0
更簡單,潛力更快
double d = 2.99999999;
long l = (long) d; // truncate to a whole number.
這將向 0 舍入。 Math.floor() 向負無窮大舍入。 Math.round(x - 0.5) 也向負無窮大舍入。
每個人都想使用花哨的函數,卻忘記了不起眼的模數。 我的解決方案:
number = x-(x%1);
將除法的余數減去 1,因此 x = 2.999 將 = 2,3.111 將 = 3,依此類推。 關於這個很酷的事情是,您可以通過將 1 更改為您喜歡的任何值來舍入任何值的倍數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.