Pergunta

Em Java, (número/0) lança uma aritmeticexception while (número/0.0) = infinito. Por que isso acontece?

Foi útil?

Solução

Porque os números de ponto flutuante do IEEE-754 têm uma representação para o infinito, enquanto os números inteiros não.

Em outras palavras, todo padrão em int representa um número inteiro normal; Os valores de ponto flutuante são bastante mais complicados com +/- infinito, "não um número" (NAN) valores, valores normalizados, valores subnormais etc.

Outras dicas

Daqui

O padrão de ponto flutuante do IEEE, suportado por quase todos os processadores modernos, especifica que todas as operações aritméticas de ponto flutuante, incluindo a divisão por zero, têm um resultado bem definido. O padrão suporta zero assinado, bem como infinito e nan (não um número). Existem dois zeros, +0 (zero positivo) e -0 (zero negativo) e isso remove qualquer ambiguidade ao dividir. Na aritmética IEEE 754, um ÷ +0 é infinito positivo quando A é positivo, infinito negativo quando A é negativo e NAN quando A = ± 0. Os sinais do infinito mudam ao dividir em -0.

A divisão inteira por zero é geralmente tratada de maneira diferente do ponto flutuante, pois não há representação inteira para o resultado. Alguns processadores geram uma exceção quando é feita uma tentativa de dividir um número inteiro por zero, embora outros simplesmente continuem e geram um resultado incorreto para a divisão. O resultado depende de como a divisão é implementada e pode ser zero, ou às vezes o maior número possível.

Com os fluxos de trabalho OOTB, você não pode copiar ou mover itens transversais. Você tem algumas opções:

  • receptores de eventos (como você já disse)
  • o SharePoint JSOM ( objeto JavaScriptmodelo )
  • Actividades de fluxo de trabalho do SharePoint Personalizado ( no codeplex ).Eles têm uma atividade de lista de cópia A atividade estendida que faz exatamente o que você precisa
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top