J'ai la valeur p>
8443.64625 P> blockQuote>
et voulez-vous arrondir à 4 décimales. Quand j'utilise
décimal.round (8443.64625, 4, MidspointRounding.awayfrafromzero) Code> Il donne la valeur p>8443.6463 P> blockQuote>
. Donc, il semble être arrondi à cause de la 5. Que puis-je faire pour que cela puisse renvoyer la valeur p>
8443.6462 P> blockQuote>
. Je pourrais le convertir en chaîne puis tronquer après 4 dp mais je pense qu'il doit y avoir une manière plus efficace? P>
4 Réponses :
Vous pouvez utiliser cela cela fonctionnera bien juste l'essayer une fois. Cela vous donnera le résultat que vous voulez. c'est 8443.6462.
Math.Round(8443.64625, 4)
Qui ronde en réalité au nombre même le plus proche - essayez math.round (8445.64635, 4) code> - il retournera 8445.6464 code> (ce qui ne veut pas que l'OP veut, ils veulent que Pour retourner 8445.6463 code>).
@Matthewwatson Je veux retourner 8443.6462 que cela semble faire
@Baddub mais que voulez-vous 8445.64635 code> pour revenir? (Ce n'est pas le même numéro que 8445.64625 code> - regardez-le soigneusement! On se termine par 35 code> et l'autre avec 25 code>.)
Il a été suggéré d'utiliser Je suis tombé sur cette réponse qui semble tronquer après 4DP sans arrondir. P> décimal.Round (8443.64625, 4, MidShyRounding.toeven) Code> Par quelqu'un, mais ce commentaire semble avoir été supprimé. MidspointRounding.Toeven code > Travaux pour le scénario J'ai posté Oui, mais si la valeur était 8443.64629, elle produirait 8443.6463. J'en ai besoin pour tronquer sans arrondi. P> public static decimal TruncateValue(this decimal num, int significantDigits)
{
decimal y = (decimal)Math.Pow(10, significantDigits);
return Math.Truncate(num * y) / y;
}
Ceci fonctionne
var num = 8443.64625; var roundedNum = Math.Round(num, 4, MidpointRounding.ToEven);
Cela fonctionne pour le scénario que j'ai posté oui, mais si la valeur était 8443.64629, elle produirait 8443.6463. J'en ai besoin pour tronquer sans arrondir.
Je ne sais pas si cela a été répondu pour le moment, mais vous pouvez utiliser Ce n'est pas "arrondi" en soi, mais vous obtiendrez le résultat que tu veux que tu veux. < / p> IE: p> retourne p> tronquer code>.
Peut-être Stackoverflow.com/Questtions/12680121/...
Que voudriez-vous
8443.64629 code> être arrondi?