在 helm 中,有數學函式https://helm.sh/docs/chart_template_guide/function_list/#math-functions,它們有一個div除以整數的函式!但是有沒有辦法從除法中獲得十進制結果?
我需要從百分比中得到一個單位間隔。
因此,如果值是 90,我需要得到 0.9,如果它是 2,我需要 0.02。
謝謝
uj5u.com熱心網友回復:
不幸的是,Helm 模板中沒有支持浮點除法的函式。
最簡單的方法是注冊一個進行轉換和除法的自定義函式。
如果您無法注冊您的自定義函式,仍然可以使用幫助模板中的可用內容來完成此操作。
您可以構造一個包含預期結果的浮點表示的字串,并使用float64Helm 模板函式將該字串決議為一個float64值。
下面是它的樣子:
{{ printf "%d.d" (div . 100) (mod . 100) | float64 }}
如果百分比是100,第一個數字將是1,0否則。然后跟隨一個點和百分比的 2 位數值,因此使用此格式字串,您將獲得浮點表示。將此傳遞給float64函式,它會決議它并將其作為float64值回傳。
測驗它:
t := template.Must(template.New("").Funcs(template.FuncMap{
"div": func(a, b int) int { return a / b },
"mod": func(a, b int) int { return a % b },
"float64": func(s string) (float64, error) { return strconv.ParseFloat(s, 64) },
}).Parse(`{{range .}}{{ printf "%d.d" (div . 100) (mod . 100) | float64 }}
{{end}}`))
if err := t.Execute(os.Stdout, []int{0, 2, 90, 100}); err != nil {
panic(err)
}
輸出(在 Go Playground 上試試):
0
0.02
0.9
1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358309.html
