Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение двух чисел, в чем траббла??????? 
:(
    Опции темы
GoodBoy
Дата 19.11.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



http://www.zenonline.ru/good/tables/add.html
третье число - сумма 1-го и 2-го... ОТКУДА берётся 00000001??????????


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Гость_DeathStorm
Дата 19.11.2004, 15:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











мда херь какая-то
может от версии jscript зависит, я под винхр смотрел, а другим браузером пробовал или везде так
насколько я понимаю это цены товаров
тогда просто усекай все после копеек.

  Вверх
sergejzr
Дата 19.11.2004, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Это не Яваскрипт, это представление числа с плавающей точкой smile

Вот тоже на ту тему smilehttp://forum.vingrad.ru/index.php?showtopic=35065
А ещё поищи по форуму. Помоему ктот целую статью писал про float' ы


smilesmile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
GoodBoy
Дата 19.11.2004, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



sergej.z
Так прикол в том, что это не всегда происходит!!!!!!!!

или иногда ещё лучше бывает, при сложении
что-то.23
что-то.43
получается:
что-то.659999999999


Решаю это прогоном числа через вот эту функцию:
Код
function cent(amount) {
   amount = ''+amount;
   var asd = amount.split(".");
   asd[1] = parseFloat("0."+asd[1]);
   asd[1] = (Math.round(asd[1]*100))/100;
   return (parseFloat(asd[0])+parseFloat(asd[1]));
}

Но это же бред!!!!!!!!!!!!!!!!!!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sardar
Дата 19.11.2004, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



GoodBoy да нормально это ! smile
Float числа в памяти хранятся в бинарном виде, как помним это мантисса и экспонента. В зависимости сколько битов дано на мантису и экспоненту получим множество машинных чисел, растояния между возможными числами разные, этим и обьясняется поблема с "левыми дробями". Решается всё простым округлением либо выбором типа с большей точностью(в JS не доступно).

В твоем случае просто умножь на столько, сколько чисел после запятой нужно, затем сделай что нужно и округли, затем раздели назад.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GoodBoy
Дата 19.11.2004, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Sardar
Дык так и делаю, но это же БРЕД!!!!!!!!!!! Тупая ведь бага! Неужели пофиксить это нельзя???


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
sergejzr
Дата 19.11.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Вот, постарался ко-чего написать по теме smile Незнаю, понравится ли текст, но в конце есть линьк. Туда стоит сходить smile
http://forum.vingrad.ru/index.php?act=ST&f...=35127&unread=1


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Се ля ви
Дата 20.11.2004, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



GoodBoy это во всех языках программирования тоже встречается. Интел такие процессоры делает просто.. Java эту проблему решает на уровне JVM, а вот для языков по-проще это беда, которую все учатся обходить по-своему...

У меня такая трабла была, когда я Дельфи занимался давно. Очень бесило, а потом стал как-то обходить... по-моему там был нормальный тип один с плавающей точной, который считался нормально, хотя в книгах и писали что он медленней real`а, но мне хватало...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Sardar
Дата 20.11.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Се ля ви тип наверное был decimal, т.е. отдается место под дрoбную часть(количество цифр после запятой) и под целую, в результате имеем гораздо меньший диапазон значний, но числа равномерно плотно распределенны. На прямую процессором вроде не поддерживаются.

2All не надо с этим бороться, просто когда делали JS, посчитали что точности float32 хватит, это и есть так. Например нужна точность до 3 цифры после запятой:
Код
var a=129446.68;
var b=607382.9;
var som=(a+b)*1000;
alert(Math.round(som)/1000);



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 20.11.2004, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Цитата
Интел такие процессоры делает просто.

smile smile А как сделать процессор, или лучше спрошу, в каком виде представить ЛЮБОЕ дробное число?
Если, как я уже писал в интервале 0.1 - 0.2 их бесконечное количество? smile smile



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 20.11.2004, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(sergej @ 20.11.2004, 15:07)
Если, как я уже писал в интервале 0.1 - 0.2 их бесконечное количество?

Да, в этом и есть большая проблема вещественных чисел.

Цитата(sergej @ 20.11.2004, 15:07)
А как сделать процессор, или лучше спрошу, в каком виде представить ЛЮБОЕ дробное число?

Можно представить их в decimal, где допустим 4 байта на целую и 4 байта на дробную часть. Сужается диапазон возможных чисел, но числа распределенны равновмерно и точно до своей максимальной точности - до максимально возможного в дробной части. Похоже это сделать трудно, да и не нужно в большинстве ситуаций. В точных вычислениях можно написать собственную либу или взять существующую для работы с болсьхими числами.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.