C# Comment formater un double à une décimale sans arrondi
J'ai besoin de formater un double de la valeur à une décimale sans arrondi.
double value = 3.984568438706
string result = "";
Ce que j'ai essayé est:
1)
result = value.ToString("##.##", System.Globalization.CultureInfo.InvariantCulture) + "%";
//returns 3.98%
2)
result = value.ToString("##.#", System.Globalization.CultureInfo.InvariantCulture) + "%";
//returns 4%
3)
result = value.ToString("##.0", System.Globalization.CultureInfo.InvariantCulture) + "%";
//returns 4.0%
4) à la Suite d'autres suggestions)
value = (value / 100);
result = String.Format("{0:P1}", Math.Truncate(value * 10000) / 10000);
//returns 4.0%
result = string.Format("{0:0.0%}",value); //returns 4.0%
Ce que j'ai besoin d'afficher la valeur de 3,9%
Merci pour toute aide à l'avance.
- Jetez un oeil à this
- Voulez-vous dire que vous souhaitez afficher
3.9%
, en tronquant le reste de la virgule?
Vous devez vous connecter pour publier un commentaire.
Je ferais une méthode utilitaire pour gérer cela:
Vous pourriez alors faire:
Notez que vous pouvez également Les mathématiques.Étage au lieu de tronquer - mais ça dépend de comment vous voulez que les valeurs négatives traitées.
Je sais que c'est un vieux thread mais j'ai juste eu à le faire. Alors que les approches ici, le travail que je veux un moyen facile d'être en mesure d'influer sur beaucoup d'appels en utilisant les Mathématiques.Tronquer sur tous les appels à la chaîne.le format n'était pas vraiment une bonne option.
Donc, j'ai fait un format personnalisé fournisseur qui me permettrait d'ajouter de la troncature de la chaîne de mise en forme, par exemple,
La mise en œuvre est assez simple et est facilement extensible à d'autres exigences.
ToString()
ne pas le faire. Vous devez ajouter du code supplémentaire. Les autres réponses montrent mathématiques approches, ma démarche ci-dessous est une sorte de hors-the-box.C'est assez simple approche par force brute, mais il fait l'affaire lorsque la décimale est un '.'. Voici une méthode d'extension pour soulager la douleur (et traite avec le point décimal).
Juste utiliser l'opérateur modulo + construit en
ToString
: