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.