Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
como converter 1 numero decimal em inteiro?
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
como converter 1 numero decimal em inteiro?
imaginem este numero:
0.200
como posso sacar o '200'?
0.200
como posso sacar o '200'?
Editado pela última vez por Cambalinho em Sex Nov 10, 2017 2:38 pm, em um total de 1 vez.
Re: como converter 1 numero decimal em inteiro?
A função floor do game maker resolve isso, veja o próprio exemplo do game maker:
val = floor( 3.9 );
a variável val terá o valor 3.
val = floor( 3.9 );
a variável val terá o valor 3.
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como converter 1 numero decimal em inteiro?
nem entendi porque não fui notificado :(
esse exemplo da-me o numero inteiro, mas não o decimal :(
sobre o seu exemplo, eu preciso do '9'
esse exemplo da-me o numero inteiro, mas não o decimal :(
sobre o seu exemplo, eu preciso do '9'
- junior.rod2
- Moderador
- Reações: 0
- Mensagens: 101
-
Re: como converter 1 numero decimal em inteiro?
Pelo que entendi, você precisa de algo que retorne a parte decimal e não arredonde o valor, correto?
Nesse caso use a função frac.
Por exemplo:
O Código acima ira retornar 389.
Nesse caso use a função frac.
Por exemplo:
Código: Selecionar todos
frac(7.389)
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como converter 1 numero decimal em inteiro?
eu testei no GMS 1.4.x:
e a caixa de mensagem da-me "0.39" :(
Código: Selecionar todos
show_message(string(frac(7.389)));
- junior.rod2
- Moderador
- Reações: 0
- Mensagens: 101
-
Re: como converter 1 numero decimal em inteiro?
Tinha me esquecido desse detalhe, a função frac não vai remover o 0 antes da virgula.
Então, tente dessa forma, substitua "Valor" pelo numero ou variável a ser convertido.
Lembrando que o código possui precisão de 3 casas apos a virgula (isso pode ser alterado).
Então, tente dessa forma, substitua "Valor" pelo numero ou variável a ser convertido.
Código: Selecionar todos
real(string_copy((string_format(Valor,3,3)),string_pos(".",string_format(Valor,3,3))+1,string_length(string_format(Valor,3,3))))
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como converter 1 numero decimal em inteiro?
perfeito. agora te pergunto: como posso saber quantas casas decimais tem?
- junior.rod2
- Moderador
- Reações: 0
- Mensagens: 101
-
Re: como converter 1 numero decimal em inteiro?
Bom, fiz umas melhorias naquele código, agora retorna qualquer numero depois da virgula desde que não ultrapasse 10 casas decimais e não esteja depois de 3 zeros (exemplo: 0.4009 nesse caso o 9 seria desconsiderado).
Basta colocar esse código em um script:
E quando precisar converter algum valor, use o script que você criou, dessa forma:
Testei com vários valores e esta com uma precisão muito boa, a menos que você vá utilizar cálculos muito precisos, isso deve lhe servir.
Basta colocar esse código em um script:
Código: Selecionar todos
Valor=frac(argument0)
str_fmt=string_format(Valor,1,10)
return real(string_copy((str_fmt),string_pos(".",str_fmt)+1,string_pos("000",str_fmt)-3));
Código: Selecionar todos
Nome_do_script(Valor_a_converter)
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante