2013-05-31 25 views
-1

我正在爲我的文件管理器應用程序實施條形圖。我必須在Y軸上顯示MB的空間量。我直接在y軸上顯示目錄的最大值,並據此繪製剩餘的點。如何計算android中最接近的百位數?

任何方式來計算最大值的百位數?

+0

由於您使用它的軸線上,你大概是想[總是圓_up_(http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html #ceil(double)),以便所有的圖形都適合,不是嗎? –

+0

@JoachimIsaksson,你是最接近的百位概念是錯誤的..請告訴我怎麼做,根據目錄大小的最大值來繪製y軸值。 –

+0

要總是四捨五入,在Ted的'size + 99'答案中改變'size + 50',如果它是一個整數。如果是小數點,請使用'100.0 * Math.ceil(size/100)'。 –

回答

1

這應該工作:

int size = . . .; 
int nearestHundred = 100 * ((size + 50)/100); 

說明:除以100截斷到的最大的整數小於或等於的商。將商數乘以100來將商恢復到期望的單位。通過將之前加入50,其效果是舍入到最近的100,而不是截斷爲100。最大的多個(例如,149變爲100,而150變爲200)

+0

你可以解釋一點點..它會做什麼?爲什麼你乘以199? – Tarun

+0

@Tarun - 解釋添加:) –

+0

我想這是一個錯字? – Tarun

3

只是想我要補充這個作爲備選;因爲你要還是放不下軸內全圖,你可能會想永遠一輪到下一個更大的100,而不是最近的100

要爲雙做到這一點,只需使用Math.ceil ,定期四捨五入Math.round;

double value = 8239; 

double rounded_up = 100 * Math.ceil(value/100); 
System.out.println(rounded_up); 

> 8300.0 

double rounded_closest = 100 * Math.round(value/100.0); 
System.out.println(rounded_closest); 

> 8200.0