/ / Como truncar o resultado de uma divisão no cache intersistemas? - intersistemas-cache

Como truncar o resultado de uma divisão no cache intersistemas? - intersistemas-cache

Eu quero obter o inteiro truncado.

Por exemplo, ao fazer esta divisão: 5/3, Eu quero que o resultado seja 1.

Respostas:

4 para resposta № 1

[Eu estou parecendo agora muito bobo, porque eu não li a pergunta original, mas vou responder agora ao original questão]

Se você quer fazer uma divisão inteira no COS, você precisa usar divisão inteira operador

write 53

/ operador sempre fará divisão de ponto de flutuação (a menos que você esteja no modo de linguagem Corba. Não pergunte o que é)


0 para resposta № 2

maneira simples de fazer isso, está usando $ piece

write $piece(5/3,".",1)
1

ou com a obtenção do separador decimal

set  decimalSeparator=##class(%SYS.NLS.Format).GetFormatItem("DecimalSeparator")
write $piece(5/3,decimalSeparator,1)
1

0 para resposta № 3

Existe um $fnumber função que poderia cair parte flutuante, o truque é deixado numérico sem qualquer formatação extra, e para isso você poderia usar "" como especificador de formato.

write $fnumber(5/3,"",0)
2

0 para a resposta № 4

Usar $ System.SQL.Floor

classmethod FLOOR (val As% Library.Numeric = "") como% Library.Integer

FLOOR é uma função numérica que retorna o maior número inteiro menor que ou igual a uma determinada expressão numérica

$ SYSTEM.SQL.FLOOR (numeric-exp)

numérico-exp

Um número cujo andar deve ser calculado.

Eu não fiz nenhum teste de desempenho nem nada, mas isso parece ser exatamente o que você está procurando.