(16-06-2017, Saat: 23:42)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:(16-06-2017, Saat: 23:28)serhat Adlı Kullanıcıdan Alıntı: Kısmen yaptım, ama 15,000 * 3 = 45,000 olması lazım fakat 45 olarak veriyor virgülden sonraki değerleri nasıl alabilirim?
function NoktaConvert(StrNokta: String): String; // Noktayı virgüle çevir begin Result := StringReplace(StrNokta, '.', ',', [rfReplaceAll, rfIgnoreCase]); end; procedure TForm4.Hesap(Sender: TObject); // Hesaplama var Fiyat, Adet: Real; begin if LV.Items.Count > 0 then begin With LV do begin Items.BeginUpdate; try for I := Items.Count - 1 downto 0 do begin Fiyat := StrToFloat(NoktaConvert(Items[I].SubItems[2])); Adet := StrToFloat(Items[I].SubItems[3]); Items[I].SubItems[4] := FloatToStr(Fiyat * Adet); end; finally Items.EndUpdate; end; end; end; end;
Merhaba Serhat Bey,
Kurmuş olduğunuz algoritmada mantıksal bir hata (fatal error) var.
Bu algoritmayı adımlayacak olursak;
Örneğin Tutar = 15.000,00 TL olsun, Adet = 3 olsun
NoktaConvert adımında Tutar = 15,000,00 olacaktır.
Fiyat * Adet = tahminimce 45 gibi bir sonuç olacaktır. (Test imkanım şu an için olmadığından sonuç konusunda net birşey söyleyemiyorum)
Tam olarak ne demek ,istediğinizi anlayamadım edite 15.000 bin olarak alıyorum 15.000,00 olarak değil ayrıntı verir misiniz?
procedure TForm2.FiyatChange(Sender: TObject);
var
Rp: String;
Rph: Currency;
begin
Rp := Fiyat.Text;
Rp := StringReplace(Rp, ',', '', [rfReplaceAll, rfIgnoreCase]);
Rp := StringReplace(Rp, '.', '', [rfReplaceAll, rfIgnoreCase]);
Rph := StrToCurrDef(Rp, 0);
Fiyat.Text := FormatCurr('#,###', Rph);
Fiyat.SelStart := length(Fiyat.Text);
end;
Para formatına çevirmek için bu yöntemi kullanıyorum


) var.