Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2015, 10:56
Новичок на форуме
Отправить личное сообщение для Maikl_Rock Посмотреть профиль Найти все сообщения от Maikl_Rock
 
Регистрация: 23.09.2015
Сообщений: 2

Написать крутую формулу с If else. С меня печеньки!
Прежде всего, отмечу, что я не знаю толком язык Java, но движок моего сайта на Bitrix, а в нем, для математических вычислений используется Java.
Я уже использовал math.pow и еще что-то, но всё это для простетских формул =)
Хочу написать серьезную формулу, но не знаю, как точно это сделать. Поэтому прошу помощи у вас!
Знатоки, внимание вопрос!
Мне нужно написать формулу с использованием IF и вроде бы Else
Суть такова:

Если (х*у/10000) меньше чем 0.1, ТО (х*у/10000) равно 0.1*(a*b)
Если (х*у/10000) больше 0.1 то тогда (х*у/10000)*(a*b)

Всё нужно прописать в одну строчку, ибо больше строчек нет. Я в неведении, как это сделать :(
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2015, 11:28
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
что я не знаю толком язык Java
я тоже.
Цитата:
математических вычислений используется Java.
круто!


Могу вас разочаровать, данный проект посвящен JavaScript, не Java.

Цитата:
Я в неведении, как это сделать
Через 10 минут чтения, мой кот написал скрипт, пока я делал кофе.
Вы, думаю, за 5 справитесь.

http://learn.javascript.ru/ifelse
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2015, 11:36
Новичок на форуме
Отправить личное сообщение для Maikl_Rock Посмотреть профиль Найти все сообщения от Maikl_Rock
 
Регистрация: 23.09.2015
Сообщений: 2

А теперь представьте ситуацию, что вы заходите в магазин какой-нибудь специализированной техники и пытаетесь узнать то, что не знаете совершенно. А продавец, пользуясь своим преимуществом, отвечает на ваши вопросы саркастически и язвительно. Не приятная ситуация..

Если вы знаете в какой то области больше чем другие, это не значит, что вы можете вести себя как мудак, господин Lemme
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2015, 11:53
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
А продавец, пользуясь своим преимуществом, отвечает на ваши вопросы саркастически и язвительно
Вы почему-то сравниваете меня с продавцом, хотя я такой же "зашедший в магазин", как и вы. Различие лишь в том, что я знаю больше.

А за время написания этого поста, вы могли бы посетить ссылку, которую я вам скинул и написать это:

var result = 0;

if (х*у/10000 < 0.1) {
     result = 0.1*(a*b);
}
else {
     result = (x*y/10000) * (a*b);
}


А если бы почитали еще минут 5, то написали бы это:

var result = х*у/10000 < 0.1 ? 0.1*(a*b) : (x*y/10000) * (a*b);
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2015, 13:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Lemme,
дважды вычислять одно и тоже не стоит.

var result = (с = х*у/10000) < 0.1 ? 0.1 * a * b : с * a * b;
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2015, 13:37
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

laimas, не знал о таком=) Спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 23.09.2015, 13:43
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от laimas Посмотреть сообщение
Lemme,
дважды вычислять одно и тоже не стоит.

var result = (с = х*у/10000) < 0.1 ? 0.1 * a * b : с * a * b;
Так писать тоже не стоит, во первых код плохо читаем. Во вторых переменная c у вас не объявлена и будет создана в глобальном пространстве. В третьих зачем вы убрали скобки приоритета? В четвертых почему по вашему не стоит вычислять одно и тоже дважды? В данном случае это никак не повлияет на производительность, да и читаемость никуда не исчезнет.
var с = х * у / 10000;
var result = с < 0.1 ? 0.1 * (a * b) : с * (a * b);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 23.09.2015, 13:50
Кандидат Javascript-наук
Отправить личное сообщение для sortarray Посмотреть профиль Найти все сообщения от sortarray
 
Регистрация: 19.09.2015
Сообщений: 117

Сообщение от devote
Во вторых переменная c у вас не объявлена и будет создана в глобальном пространстве
Она в любом случае будет там создана.
Сообщение от devote
В данном случае это никак не повлияет на производительность
никак -- это неверное слово. Незначительно.
Ответить с цитированием
  #9 (permalink)  
Старый 23.09.2015, 13:58
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

function f(x, y, a, b){
 return (x * y / 10000 < 0.1 && 0.1 * (a * b)) || (x*y/10000) * (a*b);
}
Ответить с цитированием
  #10 (permalink)  
Старый 23.09.2015, 14:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от devote
Так писать тоже не стоит, во первых код плохо читаем.
Что в нем трудно читаемого?

Сообщение от devote
Во вторых переменная c у вас не объявлена и будет создана в глобальном пространстве.
И что?

Сообщение от devote
В третьих зачем вы убрали скобки приоритета?
Хотите сказать что 2 * 3 * 4 и 2 * (3 * 4) дадут разный результат?

Сообщение от devote
В четвертых почему по вашему не стоит вычислять одно и тоже дважды? В данном случае это никак не повлияет на производительность, да и читаемость никуда не исчезнет.
А зачем?

PS. Если вас лично беспокоит глобальность, ну так кто мешает
var c, result = (с = х*у/10000) < 0.1 ? 0.1 * a * b : с * a * b;

Последний раз редактировалось laimas, 23.09.2015 в 14:42.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск