Какой лучший способ проверки целого?
Как лучше всего решается известная проблема "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, время: 16:07. |