Какой лучший способ проверки целого?
Как лучше всего решается известная проблема "0.1 * 0.2" ?
alert(0.1 * 0.2) Здесь предлагают такое: function strip(number) { return (parseFloat(number).toPrecision(12)); } Является ли это решение оптимальным? Почему? Спасибо! |
jaroslav.tavgen,
alert((1 * 2) / (10 * 10)) |
Цитата:
(0.1*0.2)/(10*10) // 0.00020000000000000004 |
Цитата:
|
Цитата:
|
умножение чисел
jaroslav.tavgen,
const multiply = (a, b) => { let n = 1; while (a != Math.trunc(a)) { a *= 10; n *= 10; } while (b != Math.trunc(b)) { b *= 10; n *= 10; } return a * b / n } alert(multiply(.1, .2)); |
рони,
const multiply = (a, b) => { let n = 1; while (a != Math.trunc(a)) { a *= 10; n *= 10; } while (b != Math.trunc(b)) { b *= 10; n *= 10; } return a * b / n } alert(multiply(-8.87, -8.87)); |
jaroslav.tavgen,
:) const multiply = (...arg) => { let n = 1; return arg.reduce((a, b) => { b = b.toString().split('.'); if (b[1]) n *= Math.pow(10, b[1].length); return a *= b.join(''); }, 1) / n } alert(multiply(-8.87, -8.87)); alert(multiply(-8.87, -8.87, -8.87, -8.87)); |
Часовой пояс GMT +3, время: 03:34. |