Clipper On Line • Ver Tópico - SET FIXED

SET FIXED

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 13:07

Descobri uma nova mas.... parece que não funciona.

SET FIXED ON
? 1 / 3
0.33
SET FIXED OFF
? 1 / 3
0.33
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 14:38

Alguém que tenha Clipper pode testar aonde isso causa diferença?

No momento só máquina com W10 64 bits.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 14:42

Só acrésimo:

Porque considero isso importante?

Porque se pego um valor do MySQL como 1.33333333, vém 1.33

Quero ver se SET FIXED OFF resolveria meu problema.
Se no Clipper funcionar.... então o Harbour deveria fazer igual.

Por enquanto, me parece que SET FIXED não serve pra nada, o que seria estranho existir uma função pra nada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor Itamar M. Lins Jr. » 26 Fev 2020 14:48

Ola!
Elementar meu caro!
Esqueceu do "Set Decimals to 8" ?
function main
set fixed off
set decimals to 8
cls
? 1/3 //0.33333333


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6944
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 311 vezes
Mens.Curtidas: 505 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 16:09

Então... SET FIXED não serve pra m. nenhuma.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 16:37

no harbour-users mostraram uma alternativa boa hb_NToC()

? hb_NToC( 1 / 3 )
0.3333333333333333

? hb_NToC( 1.00000000000 )
1
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 16:42

SET DECIMALS TO 2
SET FIXED ON
? Val( hb_NTOC( 1 / 3 ) )
? Val( hb_NTOC( 1.000000000000000 ) )
SET FIXED OFF
? Val( hb_NTOC( 1 / 3 ) )
? Val( hb_NTOC( 1.000000000000000 ) )

Mesmo resultado anterior, tanto faz o SET FIXED ou SET DECIMALS.
Vai entender pra que serve o SET FIXED...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor JoséQuintas » 26 Fev 2020 16:51

Infelizmente a mesma bost.....

x := 1 / 3
? x
? hb_NTos( x )
? Val( hb_NTos( x ) )
? Val( hb_NTos( x ) ) / 1.0000000000000000000


Se colocar variável Harbour no meio, tudo retorna 0.33
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18113
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1213 vezes

SET FIXED

Mensagempor Itamar M. Lins Jr. » 26 Fev 2020 17:29

Ola!
Cê viu lá que a precisão do harbour é de 15 decimais!
Se o campo é float, flutuante, o set fixed não faz nada, só mostra o que set decimals mandou, não faz nada mesmo.
Faltou o set deci to 15
function Main()
set deci to 15
x := 1 / 3
? x
? hb_NTos( x )
? Val( hb_NTos( x ) )
? hb_NTos( x  / 1.0000000000000000000)


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6944
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 311 vezes
Mens.Curtidas: 505 vezes

SET FIXED

Mensagempor alxsts » 26 Fev 2020 18:28

Olá!

O efeito é apenas na forma de exibição dos valores:

SET FIXED
Toggle fixing of the number of decimal digits displayed
------------------------------------------------------------------------------
Syntax

SET FIXED on | OFF | <xlToggle>

Arguments

ON fixes the decimal places display at the number of digits
specified by SET DECIMALS.

OFF allows the operation or function to determine the number of
decimal places to display.

<xlToggle> is a logical expression that must be enclosed in
parentheses. A value of true (.T.) is the same as ON, and a value of
false (.F.) is the same as OFF.

Description

SET FIXED toggles control of the display of decimal digits by the
current DECIMALS setting. When FIXED is ON, display of all numeric
output is fixed at the DECIMALS setting (two places if the SET DECIMALS
default value is in effect). When FIXED is OFF, numeric output displays
according to the default rules for numeric display. These are described
in the "Basic Concepts" chapter of the Programming and Utilities Guide.

Note that SET FIXED and SET DECIMALS affect only the display format of
numeric values and not the actual numeric precision of calculations.


Files Library is CLIPPER.LIB.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

SET FIXED

Mensagempor asimoes » 26 Fev 2020 19:03

SET DECIMALS TO 15, funciona retorna 0.333333333333333
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google Adsense [Bot] e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro