На этом фото мы видим, как группа JS-программистов реализует функцию сложения двух чисел

На этом фото мы видим, как группа JS-программистов реализует функцию сложения двух чисел
Вы смотрите срез комментариев. Показать все
43
Автор поста оценил этот комментарий

В чем прикол? Я просто из деревени

раскрыть ветку (181)
107
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (39)
44
Автор поста оценил этот комментарий

Как хорошо, что я не начал своё знакомство с программированием с изучения этого языка

раскрыть ветку (24)
21
Автор поста оценил этот комментарий
Лучше с питона
раскрыть ветку (16)
21
Автор поста оценил этот комментарий

Многие с питона начинали

Иллюстрация к комментарию
19
Автор поста оценил этот комментарий
Лучше с динамической типизации вообще не начинать.
4
DELETED
Автор поста оценил этот комментарий

Лучше с Руби.

раскрыть ветку (12)
6
DELETED
Автор поста оценил этот комментарий
Или C
раскрыть ветку (11)
5
Автор поста оценил этот комментарий

Папа может в Си.

Пайтон, или Руби - Господи спаси.

https://www.youtube.com/watch?v=cdX8r3ZSzN4  

3
Автор поста оценил этот комментарий
Си или паскаль - идеальны для обучения!
10
Автор поста оценил этот комментарий

только если с С#
А то с С и с С++ жгет в районе ануса и вечно хочется плакать

раскрыть ветку (4)
17
Автор поста оценил этот комментарий
Вы как-то не так их используете... 0_о
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

мне как-то плюсы после явы ВАЩЕ не пошли. сборище неудобных анахронизмов какое-то

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Вы таки считаете, что джава шагает в ногу со временем?)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Как могли подумать, что сигареты могут куда-то идти ?
Иллюстрация к комментарию
Автор поста оценил этот комментарий
Или асм
1
Автор поста оценил этот комментарий
C, Pascal
3
Автор поста оценил этот комментарий

лучше начинать с компилируемых языков, причём с явным преобразованием типов. тогда к моменту изучения яваскрипта такие преобразования будут казаться понятными и удобными.

раскрыть ветку (4)
Автор поста оценил этот комментарий

а какие языки к этому типу относятся? я как раз собираюсь начать изучать

раскрыть ветку (3)
Автор поста оценил этот комментарий

начни с си. сначала простой, потом плюсы, потом как пойдёт :D

раскрыть ветку (2)
Автор поста оценил этот комментарий

спасибо, а книгу посоветуете? По плюсам шилдта скачала, с него хотела начать. Но раз советуете с си...

раскрыть ветку (1)
Автор поста оценил этот комментарий

не посоветую =) изучал сначала на уроках информатики в школе, потом по гайдам в интернете. с книгами не срослось.

Автор поста оценил этот комментарий

а я начал как раз

1
Автор поста оценил этот комментарий

то же самое можно сделать и в других языках

3
Автор поста оценил этот комментарий
А если '5' + '3'?
раскрыть ветку (13)
9
Автор поста оценил этот комментарий
'53'
13
Автор поста оценил этот комментарий

это однозначно, строка + строка, а вот строка с числом начинают творить херню. Лучше бы уж ошибку выдавал.

раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Строка и число это цветочки по сравнению с числом и boolean переменной.

раскрыть ветку (7)
9
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (2)
10
Автор поста оценил этот комментарий

Не вижу ничего странного, если учитывать, что JS приводит к равным типам данных, в данном случае к числу. Так как машинно логическая правда задается  как 1, а логическая ложь - 0, то не удивителен результат.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

так я о том и говорю, этот коммент был в дополнение к предыдущему как пруф:)

4
Автор поста оценил этот комментарий

а разве он не считает их как 1 и 0?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет конечно же - нестрогая типизация во всей красе.

4
Автор поста оценил этот комментарий

С ней-то как раз всё понятно: false = 0, true = 1

раскрыть ветку (1)
Автор поста оценил этот комментарий

Было бы в нормальном яп.

Автор поста оценил этот комментарий

А ещё можно с переменным успехом строки с числами взаимно делить и умножать...

1
Автор поста оценил этот комментарий

Никакой херни нет. Просто + это символ в том числе конкатенации строк.

раскрыть ветку (1)
7
Автор поста оценил этот комментарий
Перегрузки операторов нет, а отстрелить ногу уже можно!


Ф - Фича

118
Автор поста оценил этот комментарий
любой язык:

x = 2 + 3


JS:

npm install num-add react-num-add redux-num-add num-add-webpack-boilerplate gulp-num-add-boilerplate num-add-jslint-config num-add-suka-blad-over9000

раскрыть ветку (41)
64
Автор поста оценил этот комментарий

Ну епт. Кто и зачем использует npm для сложения чисел?

yarn же.

раскрыть ветку (1)
15
Автор поста оценил этот комментарий
Иллюстрация к комментарию
48
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Оригинал найти не удалось, но близко https://stackoverflow.com/questions/3811678/add-two-variable...
1
Автор поста оценил этот комментарий
8
Автор поста оценил этот комментарий
Я что то путаю? Ведь в js тоже x = 2 + 3
раскрыть ветку (11)
7
Автор поста оценил этот комментарий

Тоже сижу минут 5 и пытаюсь уловить, в чем шутка)

ещё комментарии
3
Автор поста оценил этот комментарий

angular: npm install

5
Автор поста оценил этот комментарий
Нормальные люди используют менеджеры проектов, аля vue-cli.
раскрыть ветку (2)
Автор поста оценил этот комментарий
А потом превращается в ненормальных когда понадобится бэкэнд с аутентификацией.
раскрыть ветку (1)
Автор поста оценил этот комментарий
В чем проблема сделать бэкэнд? Или firebase использовать.
9
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (7)
2
DELETED
Автор поста оценил этот комментарий
про кукарек бесит прям, а в котлине уже отлично val кукарек =Кукарек<кококо>()
раскрыть ветку (2)
Автор поста оценил этот комментарий

В десятой джаве уже вары подвезли.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

ну на андроид десятую джаву лет через 50 подвезут

Автор поста оценил этот комментарий
Увы, был бы cpp кидающим исключения вместо undefined behavior, только на нем бы и писали.
раскрыть ветку (3)
2
Автор поста оценил этот комментарий
был бы cpp кидающим исключения вместо undefined behavior
Он есть и называется C#
раскрыть ветку (2)
Автор поста оценил этот комментарий
И как после разработки на винде код на C# запустить на машине, например с freebsd без плясок с бубном?

Или уже спустя 15 лет таки можно?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Можно. Установить mono и не париться :)

3
Автор поста оценил этот комментарий

Эм....

function sum(a, b){
     //   Поскольку язык динамический то проверка на типы с использованием

     //   тернарного оператора
     //   Является ли переменная числом
     //   Если переменная вмещает в себя строку и начало строки имеет число то

     //   можно парсить число из строки (в остальных вариантах будет NaN)
     //   Если ни одна проверка не срабатывает то назначаем переменной 0
     a = typeof a === "number" ? a : typeof a === "string" && (/^[0-9]/g).test(a) ? parseInt(a) : 0;
     b = typeof b === "number" ? b : typeof b === "string" && (/^[0-9]/g).test(b) ? parseInt(b) : 0;
     return a + b;
}

Никаких пакетов не нужно. Это болячка людей на максимально простую задачу заливать в регистр абсолютно ненужный код. А потом все удивляются а почему же блин папка node_modules весит минимум гигабайт!

раскрыть ветку (7)
2
Автор поста оценил этот комментарий

var f = (a,b) => +a + +b

за всю жизнь ни разу не приходилось складывать нецифровые строки

раскрыть ветку (6)
Автор поста оценил этот комментарий

f("2px", "5px") -> что будет?

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

Будет NaN, ведь я написал не функцию, которая переварит любой подсунутый ей треш, а функцию, которая складывает два числа.


Зачем писать f("2яблока", "5яблок")? Разумнее числовые данные хранить как числа, и лишь при необходимости записать результат - делать форматированный вывод. Иначе никакого i5 не хватит гонять перевод из строки в число, потом опять в строку, и так по кругу кучу раз. (если подразумевать, что нужно в результате иметь "7px").


Если вам на выходе неприемлем NaN и вы опасаетесь, что в функцию каким то чудным образом попадут не sanetized данные, то можно сделать assertion примерно так:


assert = {number: (x, text) => { if(typeof x != 'number' || isNaN(x)) throw new Error(text); return x; };

assert.number(f("2px", "5px"), 'складываем чушь') //кинет исключение, вы будете знать что у вас что-то не так

раскрыть ветку (4)
Автор поста оценил этот комментарий
Тогда сразу бы использовать только flow, или TS
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Иногда (лично у меня чаще всего) то что можно использовать на проекте и то что хочется - не пересекающиеся множества.


TS силен там, где кодобаза 100к+ строк, в этом согласен.

раскрыть ветку (2)
Автор поста оценил этот комментарий
Чем плох flow? Простое подключение. Удобно.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Про flow просто ничего не знаю - на практике не использовал.

Автор поста оценил этот комментарий

Зачем все это писать если node из коробки может делать арифметические операции?

Автор поста оценил этот комментарий
что из перечисленного вам знакомо?
Автор поста оценил этот комментарий
Так а теперь прошу пояснить, причём тут менеджер зависимостей? Если на чистом также можно написать?
раскрыть ветку (1)
42
Автор поста оценил этот комментарий

Числа с плавающей запятой JS считаются не очень хорошо.

Иллюстрация к комментарию
раскрыть ветку (18)
85
Автор поста оценил этот комментарий

Они так считаются практически в любом языке программирования.

раскрыть ветку (1)
7
Автор поста оценил этот комментарий

в FPU

20
Автор поста оценил этот комментарий

Это абсолютно нормально, такое во всех языках при использовании переменных с плавающей запятой. Для точных вычислений дробных чисел используется decimal типы (к примеру финансовых расчётах)

раскрыть ветку (3)
3
Автор поста оценил этот комментарий
Мы как-то плюнули на это и ввели нанорубли типа longint, а при выводе ставили где нужно запятую.
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Правильно, зачем мучиться?
Так же проще:D

Я серьезно -_-

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Так и мы серьёзно. Я в свое время даже в эксели с копейками косячил, пока они были типа дробного рубля и вечно терялись. Нанорубли - едины и неделимы!
8
Автор поста оценил этот комментарий

О, доллар еще по 30, надо брать.

Автор поста оценил этот комментарий

так там же какая-то библиотека есть, шоб эта хуета считалась.

раскрыть ветку (1)
Автор поста оценил этот комментарий
libплюсминусхуёмаё
Автор поста оценил этот комментарий
Это кстати отличная программная задача. Попробовать написать программу для счета в столбик для чисел с запятой. Умножение, деление, вычитание там сделать. ...
раскрыть ветку (7)
3
DELETED
Автор поста оценил этот комментарий
Разделять число по цифрам в строки и делать что угодно)
Автор поста оценил этот комментарий
А Вам зачем?
раскрыть ветку (5)
Автор поста оценил этот комментарий
А почему вы спрашиваете?
раскрыть ветку (4)
Автор поста оценил этот комментарий
Я, вроде бы, могу написать такую прогу, но пока не понимаю - зачем.
раскрыть ветку (3)
1
Автор поста оценил этот комментарий
...может быть я мутно выразился. Такая программа хороша в качестве упражнения. Для саморазвития.
раскрыть ветку (2)
2
Автор поста оценил этот комментарий
А, ясно. Добра Вам!
раскрыть ветку (1)
Автор поста оценил этот комментарий
Спасибо) и вам тоже! С наступившим новым годом! :-)
46
Автор поста оценил этот комментарий

Любой язык:

0.2+0.3 = 0.5


JS:

0.2+0.3 > 0.5

0.2*10+0.3*10 = 5/10

раскрыть ветку (78)
34
Автор поста оценил этот комментарий

"Любой язык:"

Кхм, в нормальных языках это зависит от типа данных. Если это обычные числа с плавающей точкой, то вы говорите неправду

раскрыть ветку (23)
Автор поста оценил этот комментарий

Насколько помню в EC6 при "строгом коде" уже все норм ибо подключаются современные стандарты, а без "строгого кода" мы имеем тот самый древний, намешанный для js. А в нодэ сразу по нормальному сделано.


Другое дело это callback hell в js. Мля я до сих пор из-за этого не могу нормально делать в js ибо рекурсивные функции в функции это пздэ.

раскрыть ветку (22)
5
Автор поста оценил этот комментарий

Я вам открою тайну, Promise - это система callback, с помощью которой и обернули в эти ващи then

раскрыть ветку (20)
2
Автор поста оценил этот комментарий

Я вам открою тайну, async/await - это очень вкусный сахар для Promise, позволяющий писать в синхронном стиле

1
Автор поста оценил этот комментарий

Ты не понимаешь, что такое Promise, если думаешь что это просто сахар над колбеками.

раскрыть ветку (18)
6
Автор поста оценил этот комментарий

function Promise(startFunc){

this._thenCallbacks = [];

this._catchCallbacks = [];


this.then = function(thenFunction){

this._thenCallbacks.push(thenFunction);

return this;

}


this.catch = function(catchFunction){

this._catchCallbacks.push(catchFunction);

return this;

}


this._resolve = function(result){

var res = result;

this._thenCallbacks.forEach(function(f){

try {

res = f(res);

} catch(err){

res = this._reject(err, res);

}

});

}


this._reject = function(err, res){

for(var i=0; i<this._catchCallbacks.length;i++){

return this._catchCallbacks[i](err,res);

}

}


startFunction(this._resolve,this._reject);


Вот так примерно на пальцах и работает ваш Promise. Если не верите, то можете вставить в дебаггер и стартануть через new Promise(function(resolve,reject){ ... })

Все новые фишки что есть в JS написаны на самом JS. И если вы не понимаете как это сделано изнутри, то вы не способны понимать JS.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

у вас контекст отклеился

– – – startFunction(this._resolve,this._reject);

+++ startFunc(this._resolve.bind(this), this._reject.bind(this));

раскрыть ветку (4)
3
Автор поста оценил этот комментарий

Да, простите, писал с телефона и после побудки, но смысл передал

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

С телефона о_О без автокоплита и подсветки синтаксиса такую простыню накатать. Да вы псих (в хорошем смысле)

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Кстати, на самом деле в коде есть несколько логических ошибок, например, из catch массива лучше всего брать методы через splice, чтобы не повторять вызванные catch, bind, о котором вы указали, ну и все это желательно реальзовывать через прототипы

2
Автор поста оценил этот комментарий

Привык уже) Иногда в Vi или Nano код правлю или еще что-нибудь... Дебажить minify код в дебагере тоже можно, примерно вычислив точку входа... Это не сложно. Подсветка помогает находить неправильные/неиспользумые переменные, а автокомплит нужен только в больших методах, которые писать изначально плохо.

Автор поста оценил этот комментарий

Да хоть на 1С там всё внутри написано, мне всё равно. Вопрос был в другом. Если вы не понимаете в чем вопрос, то вы не способны дать ответ.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Посмотрите еще раз как там работает изнутри - все на callback, просто это декорировано в красивый вид. Promise - это обертка (декорирование) над callback. Собственно, для этого он и создавался.

Автор поста оценил этот комментарий

Учитывая, что "сахар" в данном случае - это просто жаргонизм с довольно широким спектром значений, не представляю, чем это принципиально не так. Изволите пояснить ваше утверждение?

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

Не вижу никакой ширины спектра значений. Пнул вики.

Синтаксический сахар (англ. syntactic sugar) в языке программирования — это синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека.

Промисы же не только убирают лапшу, но и работают иначе. Самое главное, что есть композиция этих самых промисов.

раскрыть ветку (8)
Автор поста оценил этот комментарий

Промисы убирают лапшу, но иначе не работают - это все те же самые возможности языка на callback.

раскрыть ветку (5)
Автор поста оценил этот комментарий

У колбеков есть композиция? Или что-то типа Callback.all ? Спорить не буду дальше, считай это декорированием ;)

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

.all пишется с помощью того же кода: ждем ответа от всех callback (с счетчиком, массивом списка выполненных - как хотите) и потом выполняем функцию-переменную-callback, которая была передана первым аргументом в метод all

Да, промисы в определенный момент вынесли даже в ES (описание как должны работать), но суть одна и та же.

раскрыть ветку (3)
Автор поста оценил этот комментарий
Ну так, насколько мне известно, использование промисов как раз и не меняет ничего в поведении программы, а лишь упрощает ручную работу, связанную с композицией колбэков асинхронных операций. А так это по-прежнему вызов колбэка после завершения некого процесса - только с дополнительным уровнем абстракции.
Да, удобство колоссальное, но это именно удобство для программиста - всего, что дают промисы, можно без проблем добиться без них.
Автор поста оценил этот комментарий
Впрочем, я, кажется, понял, что вы имеете в виду - это действительно не _синтаксический_ сахар, так как промисы не расширяют синтаксис языка (в отличие от async/await).
Автор поста оценил этот комментарий

Батенька, вы отстали от технологий на пять лет.

35
Автор поста оценил этот комментарий

Ты проиграл
https://pp.userapi.com/c824602/v824602582/67a18/_BUfXmI9e4I.jpg
(не могу в пикчи)

раскрыть ветку (13)
38
Автор поста оценил этот комментарий

Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
раскрыть ветку (10)
13
Автор поста оценил этот комментарий

Окей, исправлю
>(Почти) Любой язык:
>0.1+0.2 > 0.3
http://0.30000000000000004.com/

раскрыть ветку (9)
2
Автор поста оценил этот комментарий

Крайне познавательная ссылка, спасибо)

ещё комментарии
Автор поста оценил этот комментарий

Прикольно. Незнал.

21
Автор поста оценил этот комментарий

"Любой язык:


0.2+0.3 = 0.5"


Хотел сперва ответить грубо, но потом подышал немного и решил написать, что вы мягко говоря неправы за "любой язык".

раскрыть ветку (1)
10
Автор поста оценил этот комментарий

Ну это, типа, художественное преувеличение.

Благодарю, что сдержали свой душевный порыв

10
Автор поста оценил этот комментарий

Вы, вероятно, не в курсе про представления дробныя чисел в компьютере.

Любой язык

Посмотрите на Double в Java/C#/C++. Он ведёт себя так же.

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

Признаю, был неправ

Автор поста оценил этот комментарий

Потому что это стандарт?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Стандарт - не проверять плавающую точку на равенство. В нормальных языках проверяют или с дельтой (0.2+0.3 > 0.5 - eps) && (0.2 +0.3 < 0.5 + eps), или до первого поушама за говнокод, или с особыми типами, или - что чаще - пишут библиотечную функцию сравнения, подходящую для определённого случая/проекта, которая всё сравнивает как надо (т.е. с приведением в один формат, дельтами и т.д.).

7
Автор поста оценил этот комментарий

В JS 0.2 + 0.3 == 0.5. Проверьте в консоли браузера.
Но если увеличивать переменную в цикле на 0.1, то можно заметить неточности.
Но это особенность стандарта записи чисел с плавающей точкой. https://ru.wikipedia.org/wiki/IEEE_754-2008
К языкам никакого отношения не имеет.

3
Автор поста оценил этот комментарий
Второе выражение разве правильно?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет, конечно. Запарился и неправильно написал

2
Автор поста оценил этот комментарий
Это не особенность JS, это особенность того, как вещественные числа представлены в компе. Это выглядит как-то так: X * 2 ^ Y. Где X, Y - целые числа. Соответственно далеко не все значения можно представить с абсолютной точностью. Это будет работать и в C/C++ и в Jave и на ассемблере.
2
Автор поста оценил этот комментарий

серьезно?

https://www.quora.com/Why-is-0-1+0-2-not-equal-to-0-3-in-mos...

>Why-is-0-1+0-2-not-equal-to-0-3-in-most-programming-languages

>in-most-programming-languages

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо за ссылку.

Я уже понял, что заблуждался

2
Автор поста оценил этот комментарий
У меня false выводит. И не удивительно, ведь 0.5 == 0.5, но не > 0.5
раскрыть ветку (4)
Автор поста оценил этот комментарий

Кто тебя учил использовать ==? Тру JS прогреры используют  ===

раскрыть ветку (3)
Автор поста оценил этот комментарий
Я дотНетчик, я так вижу
раскрыть ветку (2)
Автор поста оценил этот комментарий

Я тоже, но я так же знаю про строгое и не строгое равенство в Js.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я тоже. В данном случае строгое равенство :

1) Не нужно, так как я сравниваю число и число

2) Не нужно, так как пункт 1 + захламляет код лишним знаком + лишняя операция сравнения по типу

6
Автор поста оценил этот комментарий

0.2 + 0.3 > 0.5

false


0.2*10+0.3*10

5


Пиздобол ))

4
Автор поста оценил этот комментарий

Любой язык:

0.2+0.3 = 0.5


JS:

0.2+0.3 > 0.5

Всегда думал, что к дробным числам нельзя применять операции строгого равенства, но MinGW почему-то со мной несогласен. В любом случае, я бы не удивился, увидев результатом сложения 0.4999999999999999999999.

Иллюстрация к комментарию
раскрыть ветку (4)
3
DELETED
Автор поста оценил этот комментарий

А теперь float попробуй - в C++/C# это довольно неслабая подстава, и да - там ты получишь из 1+1 1.9999....

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
А теперь float попробуй

*к коллайдеру.jpg*

P.S. Блин, нафига я всё это пишу? Мне что, на работе автотестов мало? Надо срочно пойти накатить и идти в другие темы деградировать... :)

Иллюстрация к комментарию
Автор поста оценил этот комментарий

Замени на 0.1 и на 0.2 к примеру. FPU не даст тебе этого чудного результата.

0.5, 0.25 и прочие степени 1 / 2^n - круглые числа, а вот 0.3 и 0.1 - ни фига не круглые.

Разницы в сложении чисел нет, но есть разница в представлении чисел с мантиссой и экспонентой. Либо используется длинная арифметика, когда 1/3 равно 0.3333...стопицот единиц, либо использется FPU, где это равно 1/3 = 0.333333339 (к примеру)

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Тоже боялся перепутать, когда писал :)

Иллюстрация к комментарию
1
DELETED
Автор поста оценил этот комментарий

Компьютеры не любят считать числа с плавающей точкой. Это от языка не зависит.

Иллюстрация к комментарию
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

нормально они их считают это двоичная дробь в десятичную херова переводится, не нагнетайте

раскрыть ветку (2)
DELETED
Автор поста оценил этот комментарий

Я в курсе. Когда нужно произвести много сложных вычисления с высокой точностью эти косяки накапливаются в каждом действии и на выходе получается херня полная.

раскрыть ветку (1)
Автор поста оценил этот комментарий

для этого чтобы этого избежать надо побаловатсья с флагами FPU почитать правильную литературу, для ЛЛ есть библиотеки например фортрановские

1
Автор поста оценил этот комментарий
Это должно быстрее выполниться. Процессору проще складывать целые числа
раскрыть ветку (4)
1
DELETED
Автор поста оценил этот комментарий

Нет - больше движений, дольше работа.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Смотря сколько тактов нужно для выполнения 0.2+0.3 = 0.5 на "любом" языке

Автор поста оценил этот комментарий
Но в js иногда реально проще перевести в целые, посчитать и вернуть дробное, разве не?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Тут вопрос в скорости выполнения алгоритма

2
Автор поста оценил этот комментарий

А как тогда ассемблер выглядит?

раскрыть ветку (6)
25
Автор поста оценил этот комментарий
Идеально
14
Автор поста оценил этот комментарий
Иллюстрация к комментарию
2
Автор поста оценил этот комментарий

var1_0 dd 1.0

var3_0 dd 3.0

res dd ?

res_str db "result: $"

new_line db 10, 13, "$"

...

finit

fld var1_0

fld var3_0

fdiv

fstp res

write_str res_str

write_float res

write_str new_line

раскрыть ветку (3)
7
Автор поста оценил этот комментарий
Иллюстрация к комментарию
Автор поста оценил этот комментарий

Это TASM?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я по его синтаксису писал. Ну и само собой тут нет заголовков, подключения макросов и прочей такой херотени.

Автор поста оценил этот комментарий

Это вы еще не сталкивались с округлением double и float на iOS.

Автор поста оценил этот комментарий

для простых действий подключается куча инструментов, от которых нужна лишь малая часть функционала.

это как использовать швейцарский нож вместо ножа, ложки и открывашки, но при этом этот швейцарский нож будет по массе и размер такой же, как и нож, ложка и открывашка вместе взятые.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку