Arredondar valor 2,1999 para 2,20
28/03/2003
0
estou fazendo o seguinte calculo
750,00 multiplico por 11,71¬ e multiplico o resultado por 2,5¬ na minha maquina de calcular ele acha 2,20 mas no meu programa ele acha 2,195625. Como faço para ARREDONDAR para 2,20
Sem Mais Agradeço e fico no aguardo de uma ajuda....
Atenciosamente
Luciano Mattos
Noproblem
Posts
28/03/2003
Aroldo Zanela
Luciano,
Verifique se na versão do Delphi que você está utilizando possui a função RoundTo e inclua a unit Math na lista de uses.
Se sua versão não possuir, verifique aqui no fórum que eu já postei o código da mesma.
28/03/2003
Noproblem
peguei minha unitprincipal
inclui no USES o MATH
mas nao sei onde inserir a function nem qual o codigo a ser usado. recorri ao help do delphi7 mas nao obtive sucesso, pois o mesmo pede para eu colocar [b:8114e9294c]TYPE TRoundToRange = -37..37;[/b:8114e9294c]
mas da a seguinte mensagem de erro: [b:8114e9294c]expected´:´but´=´found.[/b:8114e9294c]
favor ajudar.
Atenciosamente
Luciano Mattos
28/03/2003
Jonhy Riper
NovoValor:=(round(Valor*100)/1000) ;
28/03/2003
Aroldo Zanela
<retornado> := RoundTo(<valor>);
onde <valor> pode ser um valor ou uma variável;
exemplo:
Label1.Caption := FloatToStr(RoundTo(2.1956625));
28/03/2003
Noproblem
Jonhy fiz o que vc mandou da seguinte maneira
[b:b164049fdb]label3:=(round(label3.caption*100)/1000);[/b:b164049fdb]
mas ele diz o seguinte:
[b:b164049fdb]incompatible types: ´String´ and ´Integer´
expected but ´END´ found[/b:b164049fdb]
bom, vou colocar aqui abaixo o codigo: quem puder ajudar fico mais que agradecido:
[b:b164049fdb]procedure TForm1.Button2Click(Sender: TObject);
begin
label3.caption:=floattostr(strtofloat(label1.caption)*strtofloat(edit4.text)/100);
label3.caption:=floattostr(strtofloat(label2.caption)*strtofloat(label3.caption)/100);
end;
[/b:b164049fdb]
Para Entender:
edit4 e onde eu dou o valor CHEIO
label1 e onde fica gravado o desconto de 11,75¬
label2 e onde fica gravado o desconto de 2,5¬
label3 e onde recebe o valor que no qual quero que ele ARREDONDE.
entao. quando clicar no botao2 ele sai fazendo esses calculos e no final tem que me dar o valor Arredondado.
Forte abraço para todos
e mais uma vez desculpe minha ignorancia nesse assunto mas leigo e assim memso...
Luciano Mattos
28/03/2003
Aroldo Zanela
Colega,
Não precisa se estressar. Realmente inteiro e string são incompatíveis. Faça o seguinte:
Vai no teu formulário e pressione ALT F12 (simultaneamente) copie todo o código e manda pra cá. Em minutos eu te mando resolvido.
28/03/2003
Noproblem
unit Unitprin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
Label4: TLabel;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
label3.caption:=floattostr(strtofloat(label1.caption)*strtofloat(edit4.text)/100);
label3.caption:=floattostr(strtofloat(label2.caption)*strtofloat(label3.caption)/100);
end;
end.
mais uma vez agradeço vossa compreensao em ajudar.
forte abraço para todos
Luciano Mattos
28/03/2003
Aroldo Zanela
Pegue o código abaixo e copie via clipboard (marcar e ctrl c) em seguida volte para o seu projeto no modo de design (visualizando o formulário e não o código) pressione ctrl V:
object Edit1: TEdit Left = 86 Top = 30 Width = 121 Height = 21 TabOrder = 0 end object Edit2: TEdit Left = 86 Top = 72 Width = 121 Height = 21 TabOrder = 1 end object Edit3: TEdit Left = 86 Top = 114 Width = 121 Height = 21 TabOrder = 2 end object Edit4: TEdit Left = 86 Top = 156 Width = 121 Height = 21 TabOrder = 3 end object Edit5: TEdit Left = 86 Top = 198 Width = 121 Height = 21 TabOrder = 4 end object Button1: TButton Left = 92 Top = 242 Width = 75 Height = 25 Caption = ´Button1´ TabOrder = 5 OnClick = Button1Click end
Copie o código abaixo para colocar no evento do código do botton:
edit3.Text := FloatToStr(StrToFloat(edit1.Text)*StrToFloat(edit2.Text)/100); edit5.Text := FloatToStr(SimpleRoundTo(StrToFloat(Edit3.Text)*StrToFloat(edit4.Text)/100))
No edit1 coloque 750
No edit2 coloque 11.71
No edit4 coloque 2.5
Pressione o botão.
28/03/2003
Noproblem
[b:e34181f6c1]´edit1´ is not valid floating.point value.[/b:e34181f6c1]
ai fui e coloquei USES math
mas ai ele da outro erro e nao abre o aplicativo...
se voce puder salva e manda pro meu email
luciano@transfor.net
Grato
Luciano Mattos
28/03/2003
Aroldo Zanela
Luciano,
Desculpe, vou entrar numa reunião agora. O código que mandei acima é suficiente para criar o projeto (DFM) e tem o código pascal para o evento. Tenta seguir o roteiro acima. Daqui a duas horas eu entro em linha novamente.
Boa sorte.
28/03/2003
Anonymous
label3.caption:=formatfloat(´#.00´,(strtofloat(label1.caption)*strtofloat(edit4.text)/100));
label3.caption:=formatfloat(´.00´,(strtofloat(label2.caption)*strtofloat(label3.caption)/100));
Espero ter ajudado.
28/03/2003
Noproblem
Muito obrigado a todos que tentaram ajudar
Aroldo Zenela valeu pela sua paciencia... ;)
forte abraço
Luciano Mattos :D
Clique aqui para fazer login e interagir na Comunidade :)