PDA

View Full Version : یک سوال در مورد اعداد



سیروس مقصودی
شنبه 12 اسفند 1385, 14:17 عصر
با سلام

یک مشکل برای من بوجود آمده و شاید خیلی ابتدائی باشد .

من از یک Table یک مقدار عددی خیلی بزرگ را میخوانم به این شکل

var1:= Table1.fieldbyname('debit').asinteger ;

و متغییر Var1 را از نوع Int64 تعریف کرده ام .

مثلا اگر مقدار 900,000,000,000 ریال باشد مقدار آنرا -1943132160 برمیگرداند .
و همین مشکل هم در Qreport است و باز در گزارشهایم مقدار اصلی نشان داده نمیشود .

لازم به ذکر است که من از SqlServer2000 و از Ado استفاده مینمایم .

لطفا مرا راهنمائی نمائید .

Saeid59_m
شنبه 12 اسفند 1385, 15:09 عصر
Var:=(Trunc (Table1.fieldbyname('debit').Value

dkhatibi
شنبه 12 اسفند 1385, 20:16 عصر
با سلام

یک مشکل برای من بوجود آمده و شاید خیلی ابتدائی باشد .

من از یک Table یک مقدار عددی خیلی بزرگ را میخوانم به این شکل

var1:= Table1.fieldbyname('debit').asinteger ;

و متغییر Var1 را از نوع Int64 تعریف کرده ام .

مثلا اگر مقدار 900,000,000,000 ریال باشد مقدار آنرا -1943132160 برمیگرداند .
و همین مشکل هم در Qreport است و باز در گزارشهایم مقدار اصلی نشان داده نمیشود .

لازم به ذکر است که من از SqlServer2000 و از Ado استفاده مینمایم .

لطفا مرا راهنمائی نمائید .
به صورت رشته ذخیره کن.

سیروس مقصودی
یک شنبه 13 اسفند 1385, 07:12 صبح
آیا غیر از تبدیل به رشته روش دیگری وجود ندارد ?

darvishiali
دوشنبه 14 اسفند 1385, 23:46 عصر
سلام؛

برای دریافت اعداد بزرگ میتونی از نوع داده Currency استفاده کنی.



var Num: Currency;




begin

Num:=Adoquery1.FieldByName('BigNum').AsCurrency;
Edit1.Text:=CurrToStr(Num);

end;

حرفه ای
سه شنبه 15 اسفند 1385, 08:15 صبح
با سلام

یک مشکل برای من بوجود آمده و شاید خیلی ابتدائی باشد .

من از یک Table یک مقدار عددی خیلی بزرگ را میخوانم به این شکل

var1:= Table1.fieldbyname('debit').asinteger ;

و متغییر Var1 را از نوع Int64 تعریف کرده ام .

مثلا اگر مقدار 900,000,000,000 ریال باشد مقدار آنرا -1943132160 برمیگرداند .
و همین مشکل هم در Qreport است و باز در گزارشهایم مقدار اصلی نشان داده نمیشود .

لازم به ذکر است که من از SqlServer2000 و از Ado استفاده مینمایم .

لطفا مرا راهنمائی نمائید .

دوست خوبم :چشمک:
تصور می کنم مشکل شما در داخل بانک اطلاعاتی شما است نه نحوه خواندن اطلاعات
در SQL SERVER نوع فیلد را از نوع bigint انتخاب کنید
مشکل حله

برای شما آروزی موفقیت و سرافرازی دارم :چشمک:

darvishiali
سه شنبه 15 اسفند 1385, 22:59 عصر
سلام؛




Integers

bigint (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_ia-iz_3ss4.htm)
Integer (whole number) data from -2^63 (-9223372036854775808) through 2^63-1 (9223372036854775807).
int (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_ia-iz_3ss4.htm)
Integer (whole number) data from -2^31 (-2,147,483,648) through 2^31 - 1 (2,147,483,647).
smallint (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_ia-iz_3ss4.htm)
Integer data from 2^15 (-32,768) through 2^15 - 1 (32,767).
tinyint (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_ia-iz_3ss4.htm)
Integer data from 0 through 255.
bit

bit (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_ba-bz_2it0.htm)
Integer data with either a 1 or 0 value.
decimal and numeric

decimal (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_de-dz_3grn.htm)
Fixed precision and scale numeric data from -10^38 +1 through 10^38 –1.
numeric (mk:@MSITStore:D:\Program%20Files\Microsoft%20SQL% 20Server\80\Tools\Books\tsqlref.chm::/ts_de-dz_3grn.htm)
Functionally equivalent to decimal.


با توجه به مطالب بالا (که از Books Online مربوط به SQL Server 2000 برداشت شده) بسته به نیازتون باید نوع داده مورد نظر رو انتخاب کنید.

در ضمن، بزرگترین نوع داده عددی Numeric هست!