ROUND 函式

將輸入值四捨五入至最接近的整數。輸入值可以是整數、小數、資料欄參照或運算式。可選擇的第二個引數可用來指定要捨入的位數。
  • 捨入至最接近的整數時,X.5 或更大的小數值將四捨五入為 X+1

附註:此函式會變更值的實際資料。如果您只是想要變更資料格式化的方式以便於顯示,請使用 NUMFORMAT 函式。請參閱 NUMFORMAT 函式

基本用法

數字常值範例:

derive type:single value: ROUND(2.5)

輸出:產生每一列的值均為 3 的資料欄。

運算式範例:

derive type:single value: ROUND(MyValue + 2.5)

輸出:產生的資料欄含有 2.5 與 MyValue 資料欄值加總後最接近的整數。

數字常值範例:

derive type:single value:ROUND(PI(),4)

輸出:產生一個資料欄,其中包含 pi 四捨五入到四位小數點的值:3.1416

語法

derive type:single value: ROUND(numeric_value, integer_value)

引數是否必要?資料類型說明
numeric_value字串、小數或整數要套用於函式的資料欄名稱、小數或整數常值
integer_value整數

要捨入的位數。

  • 預設值為 0,會捨入至最接近的整數。
  • 可套用負整數值。

若要進一步瞭解語法標準,請參閱語言文件語法附註

numeric_value

資料欄名稱、數字常值或數字運算式。

  • 如果系統找不到輸入值,則產生的結果也會遺漏該值。
  • 數字常值不應該加上引號。系統會將加上引號的值視為字串。
  • 不支援多個資料欄和萬用字元。

使用須知:

是否必要?資料類型示例值
字串 (資料欄參照)、整數或小數常值2.5

integer_value

函式第一個引數要四捨五入的數字位數。

  • 正值會截斷小數點右側的值。
  • 負值會截斷小數點左側的值。
  • 如果系統找不到輸入值,則產生的結果也會遺漏該值。

使用須知:

是否必要? 資料類型範例值
整數常值3

範例

範例 - 指數函式

以下範例示範如何搭配使用捨入函式。這些函式作用如下:

  • FLOOR:不大於輸入值的最大整數。請參閱 FLOOR 函式
  • CEILING:不小於輸入值的最小整數。請參閱 CEILING 函式
  • ROUND:與輸入值最接近的整數。請參閱 ROUND 函式
  • MOD:input1 除以 input2 後的餘數整數。請參閱數字運算子

來源:

rowNumX
1-2.5
2-1.2
30
41
51.5
62.5
73.9
84
94.1
1011

轉換:

derive type: single value: FLOOR (X) as: 'floorX'

derive type: single value: CEILING (X) as: 'ceilingX'

derive type: single value: ROUND (X) as: 'roundX'

derive type: single value: (X % 2) as: 'modX'


結果:

rowNumXmodXroundXceilingXfloorX
1-2.5 -2-2-3
2-1.2 -1-1-2
300000
411111
51.5 221
62.5 332
73.9 443
840444
94.1 454
10111111111

範例 - RANDBETWEEN 和 PI 和 ROUND 函式

本範例說明如何套用下列函式,在資料集中產生新的資料與隨機資料:

  • RANDBETWEEN - 產生介於兩個指定整數之間的隨機整數值。請參閱 RANDBETWEEN 函式
  • PI - 產生圓周率至小數點後 15 位的值。請參閱 PI 函式
  • ROUND - 將小數值以四捨五入法處理,取得最接近的整數或是指定的位數。請參閱 ROUND 函式
  • TRUNC - 將數值以無條件捨去法處理,取得最接近的整數值。請參閱 TRUNC 函式

來源:

在下列範例中,公司生產 10 個圓形零件,並依每個產品的半徑測量其大小 (以英寸為單位)。

prodIdradius_in
p0011
p0022
p0033
p0044
p0055
p0066
p0077
p0088
p0099
p01010

根據上述資料,公司想要針對這些圓形零件產生一些額外的尺寸資訊,包括沿著每個零件的圓周長產生兩點,並在其中應用品質壓力測試。

轉換:

首先,您可使用下列步驟產生每個產品的面積和圓周長,並四捨五入至小數點後三位:

derive type:single value: ROUND(PI() * (POW(radius_in, 2)), 3) as: 'area_sqin'

derive type:single value: ROUND(PI() * (2 * radius_in), 3) as: 'circumference_in'

基於品質考量,公司必須沿著圓周長計算兩個獨立的隨機位置,以產生兩個測試點。由於 RANDBETWEEN 函式僅會使用整數值計算,因此您必須先以無條件捨去法處理,取得 circumference_in 的近似值:

derive type:single value: TRUNC(circumference_in) as: 'trunc_circumference_in'

接著,您可使用下列指令計算隨機點:

derive type:single value: RANDBETWEEN(0, trunc_circumference_in) as: 'testPt01_in'

derive type:single value: RANDBETWEEN(0, trunc_circumference_in) as: 'testPt02_in'

結果:

捨棄 trunc_circumference_in 資料欄後,資料看起來應會類似以下內容:

prodIdradius_inarea_sq_incircumference_intestPt01_intestPt02_in
p00113.1426.28355
p002212.56612.56633
p003328.27418.8501313
p004450.26525.1332424
p005578.54031.41600
p0066113.09737.6991515
p0077153.93843.9821111
p0088201.06250.26511
p0099254.46956.5492929
p01010314.15962.8322121

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁