Articles of arredondamento

Arredondamento para um número arbitrário de dígitos significativos

Como você pode arredondar qualquer número (não apenas inteiros> 0) para N dígitos significativos? Por exemplo, se eu quiser arredondar para três dígitos significativos, procuro uma fórmula que possa ser usada: 1.239.451 e devolver 1.240.000 12.1257 e devolver 12.1 .0681 e devolver .0681 5 e retorno 5 Naturalmente, o algoritmo não deve ser codificado apenas […]

Como fazer percentagens arredondadas summ 100%

Considere as quatro porcentagens abaixo, representadas como números float : 13.626332% 47.989636% 9.596008% 28.788024% ———– 100.000000% Eu preciso representar essas porcentagens como números inteiros. Se eu simplesmente usar Math.round() , acabo com um total de 101%. 14 + 48 + 10 + 29 = 101 Se eu usar parseInt() , acabo com um total de […]

Por que o Math.round (0,49999999999999994) retorna 1?

No programa a seguir, você pode ver que cada valor ligeiramente menor que .5 é arredondado para baixo, exceto para 0.5 . for (int i = 10; i >= 0; i–) { long l = Double.doubleToLongBits(i + 0.5); double x; do { x = Double.longBitsToDouble(l); System.out.println(x + ” rounded is ” + Math.round(x)); l–; } […]

Devo usar NSDecimalNumber para lidar com dinheiro?

Quando comecei a codificar meu primeiro aplicativo, usei o NSNumber para valores monetários sem pensar duas vezes. Então pensei que talvez os tipos fossem suficientes para lidar com meus valores. No entanto, fui aconselhado no fórum do iPhone SDK a usar o NSDecimalNumber, devido às suas excelentes capacidades de arredondamento. Não sendo um matemático por […]

Arredondar de 0,5

Sim, eu sei porque nós sempre arredondamos para o número par mais próximo se estamos no meio exato (ou seja, 2,5 se torna 2) de dois números. Mas quando quero avaliar dados para algumas pessoas, eles não querem esse comportamento. Qual é o método mais simples para obter isso: x <- seq(0.5,9.5,by=1) round(x) ser 1,2,3, […]

Truncar duas casas decimais sem arredondamento

Vamos dizer que eu tenho um valor de 3,4679 e quero 3,46, como posso truncar a duas casas decimais que sem arredondamento? Eu tentei o seguinte, mas todos os três me dão 3,47: void Main() { Console.Write(Math.Round(3.4679, 2,MidpointRounding.ToEven)); Console.Write(Math.Round(3.4679, 2,MidpointRounding.AwayFromZero)); Console.Write(Math.Round(3.4679, 2)); } Isso retorna 3.46, mas parece sujo de alguma forma: void Main() { […]

Como resolver um problema de arredondamento duplo de Java

Parece que a subtração está provocando algum tipo de problema e o valor resultante está errado. double tempCommission = targetPremium.doubleValue()*rate.doubleValue()/100d; 78,75 = 787,5 * 10,0 / 100d double netToCompany = targetPremium.doubleValue() – tempCommission; 708,75 = 787,5 – 78,75 double dCommission = request.getPremium().doubleValue() – netToCompany; 877.8499999999999 = 1586.6 – 708.75 O valor esperado resultante seria 877,85. […]

Por que o .NET usa o arredondamento do banqueiro como padrão?

De acordo com a documentação, o método decimal.Round usa um algoritmo round-to-even que não é comum para a maioria dos aplicativos. Então eu sempre acabo escrevendo uma function customizada para fazer o algoritmo mais natural de round-half-up: public static decimal RoundHalfUp(this decimal d, int decimals) { if (decimals < 0) { throw new ArgumentException("The decimals […]

Por que o Math.Round (2.5) retorna 2 em vez de 3?

Em C #, o resultado de Math.Round(2.5) é 2. É suposto ser 3, não é? Por que é 2 em vez de c #?

Como faço para arredondar um valor decimal para 2 casas decimais (para saída em uma página)

Ao exibir o valor de um decimal atualmente com .ToString() , é preciso ter 15 casas decimais e, como estou usando para representar dólares e centavos, só quero que a saída tenha duas casas decimais. Eu uso uma variação de .ToString() para isso?