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?