簡體   English   中英

Math.round和Math.ceil不起作用

[英]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/1003.5 這是因為因為一切都是int350/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.

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