Что не так (см. скрин)?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
prostotrader
8054
prostotrader  
Alexey Volchanskiy
27269
Alexey Volchanskiy  
prostotrader:

Типичный пример, когда числа double дают чуть-чуть разные результаты при вроде бы одинаковой арифметике. Если вы нажмете кнопку SRC и выложите нормальный текст, я подправлю. В картинках тут не выкладывают
prostotrader
8054
prostotrader  
Alexey Volchanskiy:

... чуть-чуть разные результаты....


s_price = 0.0 - это чуть-чуть????

(см. значение переменных в правом нижнем углу скрина)

Yuriy Asaulenko
9360
Yuriy Asaulenko  
Попробуйте написать не 360, а 360.0, иначе весь знаменатель - целое число.
prostotrader
8054
prostotrader  
Yuriy Asaulenko:
Попробуйте написать не 360, а 360.0, иначе весь знаменатель - целое число.

А почкму в первой конструкции (36000) работает, тоже целое число?
Ihor Herasko
21136
Ihor Herasko  
prostotrader:

А почкму в первой конструкции (36000) работает, тоже целое число?

pr_exp и SecStavka - какой тип? Если одна из переменных целочисленная, то вот и ответ.
Yuriy Asaulenko
9360
Yuriy Asaulenko  
prostotrader:

А почкму в первой конструкции (36000) работает, тоже целое число?

Целое-не целое определяется по первому числу. 2/3.0=0, а 2.0/3=0.66. Аналогично и умножение - тип результа по первому числу.

От конкретного компилятора тоже зависит. Лучше все явно приводить к типу результата.

prostotrader
8054
prostotrader  
Ihor Herasko:

pr_exp и SecStavka - какой тип? Если одна из переменных целочисленная, то вот и ответ.

double
prostotrader
8054
prostotrader  
Yuriy Asaulenko:

Целое-не целое определяется по первому числу. 2/3.0=0, а 2.0/3=0.66. Аналогично и умножение - тип результа по первому числу.

От конкретного компилятора тоже зависит. Лучше все явно приводить к типу результата.


так первые числа - double
Yuriy Asaulenko
9360
Yuriy Asaulenko  
prostotrader:

так первые числа - double
В знаменателе первая 360 - т.е. весь знаменатель явно целый.  Вы в курсе в какой последовательности и как вычисляется выражение? Это от конкретного компилятора зависит. Приведите все явно к double и не задумывайтесь.
prostotrader
8054
prostotrader  
Yuriy Asaulenko:
В знаменателе первая 360 - т.е. весь знаменатель явно целый.  Вы в курсе в какой последовательности и как вычисляется выражение? Это от конкретного компилятора зависит. Приведите все явно к double и не задумывайтесь.

:) ОК
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий