ورود

View Full Version : حذف تا دورقم اعشار بعد از ممیز



Mask
دوشنبه 28 دی 1388, 03:05 صبح
با سلام
دوتا عدد رو در هم تقسیم میکنم. حالا یه همچین جوابی بدست میاد
12.45445699958454
اما من فقط تا دورقم اعشار می خام.
یعنی 12.45
چطوری باید بقیش رو حذف کنم.

Mahmood_M
دوشنبه 28 دی 1388, 04:08 صبح
می تونید از تابع FormatFloat استفاده کنید ، البته این تابع برای نمایش عدد اعشاری هست ، یعنی مقدار عدد رو تغییر نمی ده بلکه نحوه ی نمایشش رو تغییر میده و خروجیش هم یک مقدار String هست ، مثلا برای دو رقم اعشار :
var
A : Double;
S : String;
begin
A := 12.45445699958454;
S := FormatFloat('0.00', a);
{ S = 12.45 }
end;
برای نمایش رقم های بیشتر اعشار ، بعد از نقطه تعداد صفرها رو افزایش بدید ( به تعداد دلخواه )
برای اینکه مقدار عدد رو به دو رقم اعشار تبدیل کنید می تونید ابتدا با همون تابع عدد اعشاری رو به رشته تبدیل کنید و بعد با استفاده از تابع StrToFloat مقدار رشته ی حاصل رو دوباره به عدد اعشاری تبدیل کنید ...

موفق باشید ...

mossaferin
دوشنبه 28 دی 1388, 13:46 عصر
سلام
البته خیلی نیازی به تبدیل عدد به رشته نیست
می تونید از دستور زیر استفاده کنی


function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;


موفق باشی

Anis131313
یک شنبه 04 بهمن 1388, 11:46 صبح
سلام.
منم همینطور یه چیزی میپرونم امیدوارم به دردتون بخوره ... :خجالت:





Function NormalizeDouble(N:Double;D:Integer):Double;
begin
SetRoundMode(rmUp);
Result:=SimpleRoundTo(N,-D);
end;




حالا چرا اونجا D رو بهش منفی دادم خدا میدونه ...