Всем привет. Делаю алгоритм биржи, который определяет нужную сумму и коэффициент 2 игрока исходя из суммы и коэффициента 1 игрока. Алгоритм есть и на JS и на PHP.
var mt = {
//Определяет коэф. 2 игрока
findOtherRatio: function(ratioOtherPlayer){
return ratioOtherPlayer / (ratioOtherPlayer - 1)
},
//Определяет прибыль 1 игрока - что также является нужной, стартовой суммой 2 игрока
findProfit: function(start, ratio){
return start * ratio - start;
},
//Сумма вывода игрока
findOutcome: function(start, ratio){
return start * ratio;
}
};
Все считает практически верно. Но проблема в том, что во многих случаях цифры выглядят тысячными, миллионными... И как только я хочу придать презентабельный вид цифрам, а именно - максимум 2 цифры после запятой, то цифры перестают быть равными(вывод 1 игрока != выводу 2 игрока).
Например: представим, что 1 игрок поставил 736 руб на 1.55
var cof2Player = mt.findOtherRatio(1.55).toFixed(2)
var money2Player = mt.findProfit(736,1.55).toFixed(2)
mt.findOutcome(money2Player, cof2Player).toFixed(2) // 1141.54
mt.findOutcome(736, 1.55).toFixed(2) // 1140.80
Можно ли это как-то обойти? Как это решают различные биржи? Ведь они не показывают игрокам коэффициенты "3.8571428571428563".
Вот что будет если использовать math.js:
var mt = {
//Определяет коэф. 2 игрока
findOtherRatio: function(ratioOtherPlayer){
return ratioOtherPlayer.div(ratioOtherPlayer.sub(1));
},
//Определяет прибыль 1 игрока - что также является нужной, стартовой суммой 2 игрока
findProfit: function(start, ratio){
return start.mul(ratio).sub(start);
},
//Сумма вывода игрока
findOutcome: function(start, ratio){
return start.mul(ratio);
}
};
var N = math.fraction;
var cof2Player = mt.findOtherRatio(N('1.55'));
var money2Player = mt.findProfit(N('736'), N('1.55'));
var t1 = mt.findOutcome(money2Player, cof2Player); // 1140.8
var t2 = mt.findOutcome(N('736'), N('1.55')); // 1140.8
Для вывода можно использовать format
:
math.format(2.3, {notation: 'fixed', precision: 2}); // returns '2.30'
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Отбор товара в простейшем Интернет-магазине. Документ разделён на 2 фрейма.
Можно ли как-то промаркировать ячейки, что бы они легко обнаруживались и идентифицировались JQuery?.
Пытаюсь проверить поле "email" и отправить форму, если "email" не пусто и валидно. Но почему-то форма не отправляется.
Всем привет! Появилась необходимость в реализации drag-and-drop с автоматическим "компактным" складыванием блоков. Все блоки разного размера.