TRUNC 函式

移除任何值在小數點右側的所有數字。您可以選擇指定要捨入的數字位數。輸入值可以是整數、小數、資料欄參照或運算式。

基本用法

數字常值範例:

derive type:single value: TRUNC(PI())

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

運算式範例:

derive type:single value: TRUNC(length_in * length_in, 2)

輸出:產生新的資料欄,其中含有 length_in 的值平方,但該平方值會截斷至小數點後兩位數。

語法

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

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

要截斷的數字位數。

  • 預設值是 0,會將值截斷成最接近的整數。
  • 可套用負整數值。

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

numeric_value

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

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

使用須知:

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

integer_value

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

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

使用須知:

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

範例

範例 - 基本 TRUNC

來源:

RowIdmyVal
r011.2345
r02-1.2345
r03100.000
r0410.1
r0550.029

轉換:

derive type:single value:TRUNC(myVal) as: 'trunc_myVal'

derive type:single value:TRUNC(myVal,2) as: 'trunc_myVal2'

derive type:single value:TRUNC(myVal,2) as: 'trunc_myVal_2'

結果:

RowIdmyValtrunc_myValtrunc_myVal2trunc_myVal_2
r011.234511.230
r02-1.2345-1-1.230
r03100.000100100.00100
r0410.11010.10
r0550.0295050.020

範例 - RANDBETWEEN、PI 和 TRUNC 函式

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

  • 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 說明文件
需要協助嗎?請前往我們的支援網頁