Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить максимальное и минимальное допустимое число в не экспоненциальном виде? (https://javascript.ru/forum/misc/15299-kak-poluchit-maksimalnoe-i-minimalnoe-dopustimoe-chislo-v-ne-ehksponencialnom-vide.html)

Amphiluke 23.02.2011 20:31

P.S.
alert((10000000000000000 == 10000000000000001))

:lol:

monolithed 23.02.2011 21:00

alert((10000000000000000 === 10000000000000001));

FINoM 24.02.2011 05:51

Цитата:

Сообщение от monolithed
это сарказм?

Именно. Каким образом мне использовать программу, выдающую такое количество нулей, при том что ты даже не хочешь объяснить принцип своего кода?

monolithed 24.02.2011 09:11

Цитата:

Сообщение от FINoM
Каким образом мне использовать программу, выдающую такое количество нулей

кто мещает использовать методы toFixed(), toPrecision()?
напомню вопрос:
Цитата:

Сообщение от FINoM
Как получить максимальное и минимальное допустимое число в не экспоненциальном виде?

что-тут не так?
Цитата:

Сообщение от monolithed
при том что ты даже не хочешь объяснить принцип своего кода?

что конкретно объяснить?

FINoM 25.02.2011 05:50

Получил.
function max() {
	var x=2;
	while(x!=x+1) {
		x*=2;
	}
	return x;
}
alert([
max()-1,
max(),
max()+1
].join('\n'));
Всем спасибо за внимание.

Выдаются ли кому-то числа, отличные от 9007199254740991 и 9007199254740992?

B@rmaley.e><e 25.02.2011 12:58

В каком месте здесь максимально допустимое число?
function max() {
	var x=2;
	while(x!=x+1) {
		x*=2;
	}
	return x;
}
var maxValue = max();
alert([
maxValue-1, // 9007199254740991
maxValue, // 9007199254740992
maxValue + 10 // 9007199254741002
].join('\n'));


Читайте посты Amphiluke.

FINoM 25.02.2011 13:36

Мне собственно нужно максимальное точное число, для параметра, преобразующегося из строки и, если параметр больше чем это число, применить преобразование в bigInt.

B@rmaley.e><e 25.02.2011 14:48

Максимальная точность и IEEE754 вещи несовместимые. Как уже было замечено, для чисел с плавающей точкой существует погрешность. Она зависит от того, насколько велико число. Если число мало, то и погрешность будет на уровне 10^-15. Если же Вы оперируете числами порядка 10^50, то будьте готовы к тому, что погрешность будет больше 1 (что и произошло в Вашем примере).


Часовой пояс GMT +3, время: 18:24.