یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاواقعا چرااااااا ؟؟؟؟؟؟
من شاید به خاطر کار با زبان سوییفت بد عادت شدم یا اینکه جاوااسکریپت درسته میگه. حالا چطور میشه این مشکل رو درست کرد و آیا جاوااسکریپت باز مشکلات این مدلی داره ؟؟؟
البته چنتا رو کشف کردم:
۱) string + any type = string
2) bool = number(1,0) or bool 🤯
3) ????bool can (+ - * % /) to number 😭 why
var a = 0.1;
var b = 0.2;
console.log(a + b);
نتیجه :
0.30000000000000004
محاسبات اعداد FLoat در Js دقیق نیس گاهی،
از روش زیر استفاده کن :
var a = 0.1 * 10;
var b = 0.2 * 10;
console.log((a+b) / 10);
یا اینجوری
var a = 0.1;
var b = 0.2;
console.log((a*10 + b*10) / 10);
هر دوش اوکی هست و در خروجی 0.3 رو خواهی دید
@bamdad
پس بهتره زمانی که با float کار میکنیم به عدد ۱۰ ضرب کنیم و بعد به عدد ۱۰ تقسیم کنیم تا جواب درست بگیریم.
اگه ورودی هات معلوم نیست و از کاربر میگیری همین کارو بکن برای اطمینان
گفتم که گاهی دقیق نیس ، گاهیم درست کار میکنه . از عجایب JS هست
برای اینک میگم گاهی دقیق نیس ، مثلا کد زیر درست کار میکنه و 0.03 رو بهت میده
var a = 0.01;
var b = 0.02;
console.log(a+b);
// Output : 0.03
@bamdad
اینو در این مورد پیدا کردم که چرا اینطوریه ولی سردرنیاوردم
JavaScript Numbers are Always 64-bit Floating Point
Unlike many other programming languages, JavaScript does not define different types of numbers, like integers, short, long, floating-point etc.
JavaScript numbers are always stored as double precision floating point numbers, following the international IEEE 754 standard.
This format stores numbers in 64 bits, where the number (the fraction) is stored in bits 0 to 51, the exponent in bits 52 to 62, and the sign in bit 63:
Value (aka Fraction/Mantissa) Exponent Sign
52 bits (0 - 51) 11 bits (52 - 62) 1 bit (63)
لینک زیر:
عنوان لینک مورد نظر
آره اینو قبلا خونده بودم ، خلاصه جاوا اسکریپت گاهی بعضی جاها یه تفاوت هایی داره با زبان های دیگه ( و اینارو وقتی میفهمی حداقل با 1زبان مختلف کار کرده باشی ، بعد میای تو جاوا اسکریپت سورپرایز میشی😂
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟