Comparar SemVer (2.0.0)
1.0.0 contra 1.0.1 dá −1: a primeira versão é a anterior. A comparação segue à risca o Semantic Versioning 2.0.0, então você não precisa ordenar números de versão no olho. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Primeiro texto
- 1.0.0
- Segundo texto
- 1.0.1
- Cmp
- -1
- Relação
- a<b
Compare duas strings de Semantic Versioning 2.0.0 com as regras de precedência. Intenção de busca: comparar semver / precedência de versão semântica. Nenhuma chamada de rede, semente aleatória ou estado de servidor é necessária para uma resposta correta.
Como funciona
Compare duas strings de Semantic Versioning 2.0.0 com as regras de precedência. Metadados de build são ignorados na precedência; prerelease é inferior a release. A implementação é JavaScript puro, sem serviços externos.
Nenhuma chamada de rede, semente aleatória ou estado de servidor é necessária para uma resposta correta. Trabalhos com falha não são cobrados. As landings miram a intenção de busca com palavras-chave precisas.
Prefira unidades e intervalos explícitos à coerção silenciosa de tipos incorretos. Quando um campo é opcional, os padrões são documentados em params e ecoados na saída. Esta
Entradas, limites e arredondamento
Decimais opcionais usam half-up uma única vez. As saídas ecoam as entradas-chave para que a automação registre o contexto completo de cada chamada. Nenhuma chamada de rede, semente aleatória ou estado de servidor é necessária para uma resposta correta.
Trabalhos com falha não são cobrados. As landings miram a intenção de busca com palavras-chave precisas. Prefira unidades e intervalos explícitos à coerção silenciosa de tipos incorretos.
Quando
Quando usar
Use quando a intenção de busca corresponder ao nome da calculadora e você precisar de uma resposta reproduzível para ensino, operações financeiras, GIS, ferramentas de texto ou histórico de unidades. Compare duas strings de Semantic Versioning 2.0.0 com as regras de precedência. Nenhuma chamada de rede, semente aleatória ou estado de servidor é necessária para uma resposta correta.
Trabalhos com falha não são cobrados. As landings miram a intenção de busca com palavras-chave precisas. Prefira unidades e intervalos explícitos à coerção silenciosa de tipos incorretos.
Quando um campo é opcional, os padrões são documentados em
Perguntas frequentes
Faz chamadas de rede?
Não. Toda a matemática e as transformações de texto são locais e determinísticas.
Quem é o autor?
Aspire (elon@forhosting.com), entrega somente em EN; Nitro hidrata os locales.
A 1.0.0-alpha é anterior à 1.0.0?
Sim. Um pré-lançamento, marcado com hífen e um rótulo como alpha ou beta, sempre fica abaixo da versão final com os mesmos números, então 1.0.0-alpha vem antes de 1.0.0.
Os metadados de build mudam a ordem?
Não. O que vem depois de um sinal de mais, como em 1.0.0+build, são metadados de build e é ignorado na precedência: 1.0.0+build e 1.0.0 contam como iguais na comparação.
Por que 10.0.0 é posterior a 2.0.0?
Porque cada parte é comparada como número, não como texto. Dez é maior que dois, então 10.0.0 fica acima de 2.0.0, embora uma ordem alfabética colocasse o 1 antes do 2 e errasse.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/semver-compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":"1.0.0-alpha","b":"1.0.0"}'const res = await fetch("https://api.kit.forhosting.com/text/semver-compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": "1.0.0-alpha",
"b": "1.0.0"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/semver-compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": "1.0.0-alpha",
"b": "1.0.0"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/semver-compare", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":"1.0.0-alpha","b":"1.0.0"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":"1.0.0-alpha","b":"1.0.0"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/semver-compare", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"a": "1.0.0-alpha",
"b": "1.0.0"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.semver_compare",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
A calculadora é gratuita no navegador, determinística e idêntica no caminho da API. As entradas são validadas antes de qualquer aritmética, de modo que cargas inválidas falham com invalid_input. O arredondamento half-up é aplicado uma única vez a partir dos resultados IEEE brutos quando decimais são solicitados. Use o mesmo contrato JSON a partir de planilhas, CMS
Como funciona
A calculadora é gratuita no navegador, determinística e idêntica no caminho da API. As entradas são validadas antes de qualquer aritmética, de modo que cargas inválidas falham com invalid_input. O arredondamento half-up é aplicado uma única vez a partir dos resultados IEEE brutos quando decimais são solicitados. Use o mesmo contrato JSON a partir de planilhas, hooks de CMS, automação ou demos didáticas.
Entradas, limites e arredondamento
Forneça os parâmetros obrigatórios como números ou strings JSON conforme a documentação. Tipos inválidos, campos obrigatórios ausentes ou valores fora do intervalo geram invalid_input com mensagem clara. A calculadora é gratuita no navegador, determinística e idêntica no caminho da API. As entradas são validadas antes de qualquer aritmética, de modo que cargas inválidas falham com invalid_input. O arredondamento half-up é aplicado uma única vez a partir dos resultados IEEE brutos quando decimais são solicitados. Use o mesmo contrato JSON a partir de planilhas, hooks de CMS, automação ou demos didáticas.
Quando usar
A calculadora é gratuita no navegador, determinística e idêntica no caminho da API. As entradas são validadas antes de qualquer aritmética, de modo que cargas inválidas falham com invalid_input. O arredondamento half-up é aplicado uma única vez a partir dos resultados IEEE brutos quando decimais são solicitados. Use o mesmo contrato JSON a partir de planilhas, hooks de CMS, automação ou demos didáticas.
Casos de integração
Verificação rápida
Cole valores no widget gratuito e compare com uma planilha.
Automação
Chame a API com o mesmo contrato JSON a partir de n8n, scripts ou CMS.
Ensino
Mostre a fórmula e os exemplos golden fixos sem software proprietário.
Perguntas técnicas
É grátis no navegador?
Sim. O tier A roda totalmente no cliente com o mesmo núcleo da API.
O que acontece com entrada inválida?
O handler lança invalid_input; trabalhos com falha não são cobrados.
Posso usar pela API?
Sim. Envie os mesmos campos JSON documentados em params.