Arredondar para zero
Inspirado pelo círculo em direção a zero .
Dada uma entrada numérica por qualquer método razoável, arredonde o número "longe de zero" - números positivos são arredondados para cima e números negativos são arredondados para baixo.
Se você pretende usar a entrada como uma string (via STDIN, por exemplo), deve poder manipular números com ou sem o ponto decimal. Se você o considera um número, ele deve pelo menos ser capaz de lidar com precisão de ponto flutuante (precisão dupla não é necessária) ou números racionais.
Você pode emitir um número de ponto flutuante com o ponto decimal (por exemplo, 42.0), se desejar. (Ou mesmo alguns casos de teste produzem ponto flutuante e algum número inteiro, se a resposta for mais curta.)
Não são permitidas brechas padrão, etc.
Casos de teste
-99.9 => -100
-33.5 => -34
-7 => -7
-1.1 => -2
0 => 0
2.3 => 3
8 => 8
99.9 => 100
42.0 => 42
-39.0 => -39
.0
que os casos de teste parecem sugerir?-0.1
e0.1
Respostas:
Excel, 13 bytes
Alternativo
fonte
EVEN
, que função estranha ..R, 32 bytes
fonte
Gelatina , 4 bytes
Um link monádico que aceita um número que gera um número inteiro.
Experimente online! Ou veja uma suíte de testes .
Quão?
fonte
¡
funciona para números negativos? Eu não acho que está documentado¡
a natureza repetitiva é implementada com umfor index in range(repetitions)
loop no código.range([stop=]-1)
está vazio, já que ostart
padrão é0
e ostep
padrão é1
"Para uma etapa positiva, o conteúdo de um intervalor
é determinado pela fórmular[i] = start + step*i
ondei >= 0
er[i] < stop
". docs¡
O comportamento de baseia-se no de Pythonrange
erange(-1).__iter__().__next__()
lança imediatamenteStopIteration
.Python 3 , 23 bytes
Experimente online!
-1 byte graças ao xnor
fonte
(1|-(i>0))
para salvar um byte(1,-1)[i>0]
.g=lambda r:0if r==0 else(int(r)+r/abs(r)if r/int(r)!=1 else r)
Geléia ,
54 bytesExperimente online!
Esta porta recursiva fornece a resposta Stax do Jelly no Jelly, portanto verifique essa resposta para obter uma explicação.
-1 byte graças a Nick Kennedy
Gelatina ,
65 bytesExperimente online!
-1 byte graças a Jonathan Allan
Como este funciona
fonte
ĊḞ>?0
funcionaria como o seu 6.AĊ×Ṡ
é 4 e funcionalmente idêntico à sua primeira resposta.Java (JDK) , 18 bytes
Experimente online!
Explicações
Usa a
BigDecimal
como entrada e saída.BigDecimal
possui um métodosetScale
que define a escala do número. O primeiro parâmetro é o número de dígitos após o separador de pontos, o segundo é o modo de arredondamento.ROUND_UP
é o arredondamento "longe de zero" e tem um valor de0
modo que eu codifique esse valor.fonte
Vim, 36 bytes / pressionamentos de tecla
Experimente online! ou Verifique todos os casos de teste!
Explicação:
fonte
$F-a <esc>
vez da primeira linha e uma macro com/
como condicional no lugar de:g
e:norm
fornece 29 bytes tio.run/##HczBCoJAFEZhWva/QpuLCNbizoxalBXRInqJMpjGCYVwmkx7/…J , 6 bytes
Experimente online!
Apenas uma alteração de 1 caractere da minha resposta à pergunta do primo .
fonte
C # (Visual C # Compiler) ,
41 bytes27 bytes24 bytesExperimente online!
Primeiro post aqui, me diverti com ele, espero que você goste. Meio que senti que o lugar do C # está vazio aqui
-14 tnx em @ dados expirados
-3 tnx em @ night2
fonte
Code golf submission
funcionalidade, apenas adicionei um pouco de minhas próprias palavras ao final, mas para editar, apenas alterei a linha do código e você está aí, esqueci de atualize o link, o que nos leva de volta à primeira etapa, para modificar apenas uma vez, meio SOLID aqui, enfim, tnx para a dica tambémEncantos Rúnicos ,
1816 bytesExperimente online!
"Adiciona" (longe de zero) 0,999999 e pisa o resultado.
µ
é a coisa mais próxima de um infinitesimal nos operadores da linguagem. Com umTrunc(x)
comando funcionando corretamente , a resposta agora suporta0
como entrada.fonte
divide by input
para obter o "sinal" do valor da entrada, que, é claro, divide por 0 quando a entrada é 0. Não há nenhuma maneira (boa) de contornar isso no momento. Primeiro precisará desse commit . Vou cutucar Dennis (benefício colateral, a resposta ficará mais curta).0
corretamente.Stax , 6 bytes
Execute e depure
Procedimento:
fonte
C,
944339 bytesgraças ao tetocat por 39 bytes
TIO
fonte
Retina 0.8.2 , 38 bytes
Experimente online! O link inclui casos de teste. Explicação:
Exclua zeros após o ponto decimal, para garantir que o número não seja um número inteiro; as próximas duas correspondências falharão se não houver dígitos após o ponto decimal.
Se a parte inteira for toda
9
s, prefixe a0
para permitir que o incremento seja excedido.Incremente a parte inteira do número.
Exclua a parte fracionária do número.
fonte
05AB1E , 6 bytes
Um 5-byter definitivamente deve ser possível.
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
JavaScript (ES6), 20 bytes
Experimente online!
Comentado
fonte
n=>(~~n-n%1)%1+n
) até descobrir que meu código não funcionava para números entre -1 e 1. Você pode descobrir como fazer isso funcionar com os últimos 3 bytes. esquerda!Perl 6 , 18 bytes
Experimente online!
Explicação
fonte
MathGolf , 5 bytes
Experimente online!
Explicação
É bom encontrar uso para o
‼
operador.fonte
PHP , 30 bytes
Experimente online!
Se o número não for inteiro, com base no sinal -1 (para decimais negativos) ou 1 (para decimais positivos) será adicionado e, em seguida, parte inteira do novo número será impressa.
PHP , 32 bytes
Experimente online!
Basicamente, saídas
floor
de entrada, se for menor que 0, caso contrárioceil
.PHP , 34 bytes
Experimente online!
fonte
Braquilog , 7 bytes
Experimente online!
ou
⌉₁ℕ₁|⌋₁
.fonte
Wolfram Language (Mathematica) , 18 bytes
Experimente online!
fonte
Fator , 57 bytes
Experimente online!
fonte
APL (Dyalog Unicode) , 15 bytes
Experimente online!
Dfn simples. Usos
⎕IO←0
.Quão:
fonte
sed, 131 bytes + 2 bytes para
-r
sinalizadorUngolfed
fonte
Perl 5
-pF/\./
, 35 bytesExperimente online!
fonte
3.0
. Para comutadores,-pF\.
é suficiente://
são opcionais.0.0
é verdadeJavaScript (node.js),
302321 bytesInspirado pela resposta em C #.
Graças a @Value Ink e @Gust van de Wal por -7 bytes!
Mais uma vez obrigado, @Gust van de Wal por mais -2 bytes!
fonte
+=
quando+
fará o truque neste caso? -1 byteparseInt()
, eu apenas usaria~~
no início ou outro operador bit a bit como|0
ou^0
no final para salvar outro pedaço de bytes+=
, thx por apontá-loPerl 6 , 19 bytes
Experimente online!
Não é a solução mais curta, mas estou trabalhando nisso. Basicamente, isso trunca o número e, em seguida, adiciona um valor a zero se o número não era inteiro para começar.
fonte
Java (OpenJDK 8) , 43 bytes
Experimente online!
fonte
return
declaração explícita .(int)a/a<1
paraa%1!=0
: 30 bytesBigDecimal.setScale
método que fornece excelentes resultados, como minha resposta demonstraJaponês , 6 bytes
Experimente aqui
fonte
Vermelho , 46 bytes
Experimente online!
A versão um pouco mais legível tem 2 bytes mais (esses nomes de funções longos!):
fonte
Scala , 16 bytes
Experimente online!
Scala , 22 bytes
Experimente online!
fonte