[英]Math.round and Math.ceil not working
我正試圖圍繞用戶輸入,但我似乎可以得到我的雙倍輪到一個int。 基本上,當我輸入4.4999時,它不會達到5。
有任何想法嗎?
Math.ceil Math.ceil()
返回 ceiled值。 它不能改變它作為參數所使用的變量的值,因為Java通過值傳遞參數。 所以你需要這樣做
hours = Math.ceil(hours);
實際的解決方案是在ceil
方法中使用double。
Math.ceil(7 * 50 / 100)
將返回3.0
即使從產生的實際值7*50/100
是3.5
。 這是因為因為一切都是int
, 350/100
本身的結果將是3
。
但是,如果你給Math.ceil(7 * 50 / 100D)
,結果將是4.0
。
所以, 4.999
在你的問題應該是一個double
像整數運算,而不是一個結果4999/1000
。
只要確保你在ceil
里面給出的任何東西都是double
而不是int
。
兩個函數都返回舍入(或上限)值,但不更改作為參數傳遞的變量。
使用例如。 hours = Math.ceil(hours);
。
Math.ciel
返回一個Double
。 像這樣的東西應該工作(你的hours > 0
塊):
cost += Math.ceil(hours) * hourlyRate;
你沒有將Math.ceil(hours)
的結果分配回hours
所以它永遠不會圓。
int a = 15
int b = 2;
int x = (int) Math.ceil( a / b );
int y = (int) Math.ceil( (double) a / (double) b );
結果 :
x:7
y:8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.