Comment pouvons-nous tronquer float64 type à une certaine précision dans golang?

package main

import (
    "fmt"
    "strconv"
    )

func main() {
    k := 10/3.0
    i := fmt.Sprintf("%.2f", k)
    f,_ := strconv.ParseFloat(i, 2)
    fmt.Println(f)
}

J'ai eu à écrire le programme ci-dessus pour diminuer la précision d'un float64 variable à 2.
Dans ce cas, j'ai été en utilisant à la fois strconv et de l'esf. Est-il une autre méthode logique par lequel il peut être fait ?

  • Pourquoi voulez-vous diminuer la précision d'un float64 variable?
  • Lors de l'affichage des données en html, je n'ai pas envie d'afficher ou de stocker plus de 2 chiffres. J'ai été confronté à la situation où j'ai dû convertir en chaîne de caractères et a été pensée de méthodes alternatives.
  • Juste à l'aide de l'esf.Sprintf("%.2f", k) lorsque vous le montrer dans le code html est probablement le meilleur moyen pour cela.
  • J'ai le même besoin, mais pour une raison différente. Je prends un total valeur de l'argent et en le divisant de plus de X jours. J'ai besoin chaque jour pour avoir une réelle valeur de l'argent au centime le plus proche, pas une fraction de centime, car je ne peux pas demander à mes clients pour un demi-penny. Je ne veux pas stocker une valeur plus spécifique parce que j'ai aussi besoin de prendre le total de ma X les valeurs de la monnaie, ajoutez-les à nouveau, et de trouver la différence entre le montant d'origine, de sorte que je peux ajouter que la différence sur la dernière journée de la charge.
  • Sur le dessus des exemples ci-dessous, au lieu de les tronquer l'aide de int() la bibliothèque de mathématiques a Trunc(float64) float64 qui retourne simplement le type entier, il est préférable de l'utiliser.
  • Blair Connolly - ne pas utiliser float pour stocker des valeurs monétaires! stackoverflow.com/questions/3730019/...