Pages - Menu

Saturday, August 10, 2013

J2SE - 03.2 Data Types - Floating Point

හරි අද මම කියන්න යන්නේ Floating Points නම්බර්ස් ගැන.අපි මේවට Real නම්බර්ස් කියලත් කියනවා.අපි මේ ඩේටාටයිප් යොදාගන්නේ දශම සංඛ්‍යා නිරූපනය කරන්න.උදාහරණයක් ගත්තොත් සංඛ්‍යාවක වර්ගමුලය පෙන්නන්න ඕනේ වුනොත් අපිට මේ ඩේටාටයිප් එක ඕනේ වෙනවා.එතකොට ගණිතයේ සයින් කොසයින් අගයන් නිරූපනය කරන්න ඕනේ උනහම අපිට මේ ඩේටා ටයිප් එක ඕනේ වෙනවා.දැන් බලන්න 03 වර්ගමුලය තමයි 1.7320 ආසන්න ලෙස.මේකේ දශම සංඛ්‍යා තියෙනවා කියලා පේනවනේ.හැබැයි මේ ඩේටා එක ඔයාට int වේරියබල් එකකට එහෙම දාන්න බෑ.දාන්න පුළුවන්.කම්පයිල් කරගන්න බෑ.බලමු int වේරියබල් එකකට දශම අගයක් දාල  කම්පයිල මොකද කියන්නේ කියලා.




 කම්පයිල කියනවා එයාට ප්‍රෝග්‍රෑම් එකේ හම්බුනේ double කියලා ඩේටාටයිප් එකක්ලු.අපි දීලා තියෙන්නේ int ලූ.ඉතින් කම්පයිල වැඩේ අත ඇරලා දාලා.දැන් බලමු මොනවද මේ double-ඩබල් කියන්නේ එහෙම කියලා.

හොඳයි. Floating Points එහෙමත් නැත්නම් දශම සංඛ්‍යා නිරුපනය කරන මේ ඩේටාටයිප් එක ගත්තම අපිට කොටස් දෙකක් හම්බෙනවා.ඒ තමා.

1. float

2. double

කලින් ලිපියේ අපි හඳුන්වා දීපු සිම්පල් ඩේටාටයිප් දෙකක් තමා මේ.අර සිම්පල් ඩේටා  ටයිප් 08 ක් ගැන කිව්වේ.මතකයි නේද? දැන් මේ දෙක ගැන වෙන වෙනම බලමු.

float

float-ෆ්ලෝට් ගත්තම අපි කියනවා මේක single-precision value(සිංගල් ප්රිසිෂන් වැල්යු) එකක් කියලා.
මොකක්ද ඒ මඟුල? single-precision value එකක් කියන්නේ පරිගණක භාවිතා කරන නම්බර් ආකාරයක්.float ගන්නවා 32bit මතකයක්.ඒ වගේම double-precision value(ඩබල් ප්රිසිෂන් වැල්යු) කියලා දෙයකුත් තියෙනවා.ඒකත් එක්ක බලද්දී මේ single-precision value ආකාරය වේගවත්.හැබැයි අපි දෙන අගයන් විශාලවෙද්දී වේගය අඩුවීමක් වෙනවා.ඒක ගැන ඊළඟට බලමු.අපි මේ float වලින් වේරියබල් එකක් ඩික්ලෙයාර් කරන හැටි බලමු.
float number = 1.5f ; 

පොඩි වෙනසක් තියෙනවා නේද? අගය අපි දෙද්දී අගට f එකතු කරන්න ඕනේ.නැත්නම් ඒක double-ඩබල් ඩේටා ටයිප් ආකාරයක් වෙනවා.ඒක බලමු ඊළඟට.

double 

හරි.දැන් අපි බලමු මේ double-ඩබල් සිම්පල් ඩේටා ටයිප් එක ගැන.මුලින් කිව්වා වගේ මේක double-precision value(ඩබල් ප්රිසිෂන් වැල්යු) ගණයට තමා අයත් වෙන්නේ.64bit මතකයක් එයා ගන්නවා.දැනට අපි යොදා ගන්න පරිගණක ගොඩක් සංකීර්ණ ගණිතමය ගණනය කිරීම් වලට යොදාගන්නවා.එතකොට මේ double ඩේටා ටයිප් එක වැදගත් වෙනවා.ජාවා වල උනත් අපි යොදා ගන්න sin( )  cos( ) sqrt( ) වගේ මෙතඩ්ස් වලදී අපිට return-රිටන් අගය විදියට දෙන්නේ double අගයන්.return ගැන පස්සේ කියලා දෙන්නම්.විශාල මතකයක් යෝදාගන්න විශාල අගයන් සඳහා අපි double යොදා ගන්නවනම් අවුලක් වෙන්නේ නෑ.බලමු double යොදාගෙන වේරියබල් එකක් ඩික්ලෙයාර් කරන්නේ කොහොමද කියලා.
double number = 1.5628 ; 

අවුලක් නෑනේ.දැන් තේරෙනවා නේද float සහ double වලදී අපි දෙන අගයන් දෙක වෙනස් වෙන්නේ float වලදී අපි දෙන f අකුරෙන් කියලා.බලමු දැන්  float කියලා දීලා f දාන්න බැරි උනොත් කම්පයිල මොකද කියන්නේ කියලා.



දැන් දැක්ක නේද? අපි f දැම්මේ නෑ float වේරියබල් එකට.කම්පයිල කියනවා.එයාට අපේ ප්‍රෝග්‍රෑම් එකෙන් හම්බුනේ double අගයක්ලු.අපි දීල තියෙන්නේ float ලු.එහෙනම් බලමුද මේවා දාල පොඩි ප්‍රෝග්‍රෑම් එකක්.



ඔන්න අපිට එනවා අවුට්පුට් එක මෙන්න මෙහෙම.



දැන් බලමු මේ දිහා.මම මුලින්ම double විදියට වෙරියබල් 03 ඩික්ලෙයාර් කරලා තියෙනවා.ඒවාට අගයන් ඊළඟට දීලා තියෙනවා.වෘතයක වර්ගඵලය හොයන හැටි කවුරුත් දන්නවනේ.ඒක තමා කරලා තියෙන්නේ.අවසාන එන උත්තරයත් double විදියට තමා දීල තියෙන්නේ.නැත්නම් වැරදෙනවනේ.

දැන් මම කියපු 32bit(single-precision value) ආකාරය තමා මුල්ම Programming languages වල ආවේ.මොකද මුලින් කිව්වා වගේ 64bit(double-precision value) ආකාරය යොදා ගන්නේ සංකීර්ණ ගණිතමය ගණනය කිරීම් වලට හන්දා අතීතයේ 64bit(double-precision value) ඩේටාටයිප් ආකාරයේ අවශ්‍යතාවයක් තිබුනේ නෑ.මොකද අතීතයේ පරිගණක වලින් සිදු කලේ එතරම් සංකීර්ණ ගණනය කිරීම් නොවෙන හන්දා.නමුත් පරිගණක වල ගණිතමය යොදාගැනීම්, ගණනය කිරීම් සංකීර්ණ වෙද්දී 64bit මතකයක් සහිත ඩේටාටයිප් ආකාරයක අවශ්‍යතාවය ආවා.එතනින් තමා 64bit(double-precision value) ඩේටාටයිප් ආකාරය Programming languages වලට එකතු උනේ.අපි මේ 64bit(double-precision value) ආකාරය double විදියට ජාවා වල හඳුන්වනවා.ඒවගේම  32bit(single-precision value) ආකාරය අපි ජාවා වලදී float විදියට හඳුන්වනවා.  .මෙම 32bit(single-precision value) සහ  64bit(double-precision value) ආකාර දෙකම මුලින්ම එකට ආවේ Fortron කියන පරිගණක භාෂාවේ.එහෙනම් අදට මම නැවතුනා.ඊලඟට අපිට ඉතුරු වෙලා තියෙන්නේ characters සහ boolean ඩේටා ටයිප් ආකාර දෙක විතරයි.ඒවා ඊළඟට බලමු.අදට මම ගියා.

No comments:

Post a Comment