English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este artigo ilustra como realizar a operação de resto de números grandes (números de ponto flutuante) em PHP. Compartilho com vocês para referência, conforme detalhado a seguir:
Geralmente, a primeira coisa que pensamos ao fazer a operação de resto é usar o sinal de porcentagem %, mas quando o divisor é um número muito grande, que ultrapassa o escopo do int, assim, a operação de resto não é precisa.
Função de Remainder de Grandes Números (Números de Ponto Flutuante) em PHP:
/** * Remainder de Grandes Números em PHP * * @param int ou float $bn Divisor * @param int $sn Dividendo * @return int Resto */ //Método de Remainder de Grandes Números (Números de Ponto Flutuante) function Kmod($bn, $sn) { return intval(fmod(floatval($bn), $sn)); }
Código de Teste:
//Método de Remainder de Grandes Números (Números de Ponto Flutuante) function Kmod($bn, $sn) { return intval(fmod(floatval($bn), $sn)); } //Método de Remainder de Inteiros function mod($bn, $sn) { return $bn%$sn; } //O maior inteiro int $bn = PHP_INT_MAX; $sn = 11; var_dump($bn); var_dump(Kmod($bn, $sn)); var_dump(mod($bn, $sn)); //Adicionar o maior inteiro int1 $bn = PHP_INT_MAX + 1; var_dump($bn); var_dump(Kmod($bn, $sn)); var_dump(mod($bn, $sn));
Resultados da Execução:
int 2147483647 int 1 int 1 float 2147483648 int 2 int -2
Leitores interessados em mais conteúdo sobre PHP podem consultar as seções especiais do site: 'Resumo de Técnicas de Operação Matemática em PHP', 'Resumo de Uso de Operadores e Operações em PHP', 'Resumo de Uso de String (string) em PHP', 'Guia Completo de Operações de Array (Array) em PHP', 'Resumo de Algoritmos de Percurso Comuns e Técnicas em PHP', 'Tutorial de Estructuras de Dados e Algoritmos em PHP', 'Resumo de Algoritmos de Programação em PHP', 'Resumo de Uso de Expressões Regulares em PHP' e 'Resumo de Técnicas Comuns de Operação de Banco de Dados em PHP'
Espero que o conteúdo deste artigo ajude a todos a programar em PHP.
Declaração: O conteúdo deste artigo é extraído da Internet, pertence ao respectivo proprietário, foi contribuído e carregado voluntariamente pelos usuários da Internet, o site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas. Apenas após a verificação, o site deletará o conteúdo suspeito de violação de direitos autorais.)