This commit is contained in:
Gowtham M 2025-02-18 11:39:48 +05:30
parent bf9e2687c4
commit 37f69801a2
3 changed files with 37 additions and 4 deletions

View File

@ -605,9 +605,9 @@ func main() {
cardLogo,
)
}
// log.Println("Gowtham", chartData)
cResRaw := utils.ProcessChartData(chartData, languageSourceConverted, langKey)
log.Println("Gowtham", "loop")
//responce data structure
chartHeadingKey := "chart_heading_" + language
chartSubHeadingKey := "chart_sub_heading_" + language
@ -635,7 +635,6 @@ func main() {
}
// card data calculation
// Convert cResRaw ([]map[string]interface{}) to []utils.Observation
var cRes []utils.Observation
cResJSON, err := json.Marshal(cResRaw)
if err != nil {

Binary file not shown.

View File

@ -7,6 +7,7 @@ import (
"math"
"sort"
"strconv"
"strings"
)
// Observation struct with json.Number for flexible value handling
@ -177,6 +178,25 @@ func difference(data []Observation) float64 {
// }
// }
// Function to add commas to a number string
func addCommas(num string) string {
n := len(num)
if n <= 3 {
return num
}
var sb strings.Builder
start := n % 3
if start == 0 {
start = 3
}
sb.WriteString(num[:start])
for i := start; i < n; i += 3 {
sb.WriteString("," + num[i:i+3])
}
return sb.String()
}
func applyConversion(value float64, conversion string, numberFormat string) string {
if numberFormat == "T" {
value *= 1000000000000
@ -189,8 +209,22 @@ func applyConversion(value float64, conversion string, numberFormat string) stri
}
// Helper function to format the number properly
// formatNumber := func(v float64, suffix string) string {
// if v == float64(int(v)) { // Check if v has no decimal part
// return fmt.Sprintf("%d%s", int(v), suffix)
// }
// return fmt.Sprintf("%.2f%s", v, suffix)
// }
// Helper function to format numbers with a thousands separator only in the default case
formatNumber := func(v float64, suffix string) string {
if v == float64(int(v)) { // Check if v has no decimal part
if suffix == "" { // Apply comma formatting only in default case
if v == float64(int(v)) { // No decimal part
return addCommas(strconv.Itoa(int(v)))
}
return addCommas(fmt.Sprintf("%.2f", v))
}
if v == float64(int(v)) { // No decimal part
return fmt.Sprintf("%d%s", int(v), suffix)
}
return fmt.Sprintf("%.2f%s", v, suffix)