
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.12.2008, 15:55
|
|||
|---|---|---|---|
|
|||
JS: преобразование String-Float с заменой "," на "." и умножением результата на 100 |
|||
|
#18+
Добрый день! Никак не могу понять, почему такая функция: function retCents(varIn){ return varIn.toString().replace(",",".")*100 } возвращает: 250.99999999999997 когда ей на вход поступает: varIn = "2,51" или другое какое-нибудь, на мой взгляд, случайное число (Функция ведет себя избирательно :)) При этом для всех других, "неизбраных-Функцией" чисел, возвращает нормальный результат, т. е. денежную сумму в копейках. Сценарий, в котором применяется функция, читает данные из текстового файла, а затем формирует другой текстовый файл для импорта в спецсофт. Возможность подачи на вход функции некорректных данных я исключил, все данные имеют нужный вид, т. е.: "целая часть","дробная часть" Подскажите, пожалуйста, может есть какие-то "недокументированые возможности" JS, которые я упустил??? Задача, я думаю, типична, возможно кто-то сталкивался с подобной проблемой, на что в таком случае мне следует обратить внимание??? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2008, 16:03
|
|||
|---|---|---|---|
|
|||
JS: преобразование String-Float с заменой "," на "." и умножением результата на 100 |
|||
|
#18+
Дима_x86Подскажите, пожалуйста, может есть какие-то "недокументированые возможности" JS, которые я упустил??? Такие "недокументированые возможности" есть, увы, во всех языках программирования Это называется "ошибка округления". ЗЫ: Один математик как то так сказал: "Целые числа - от бога, дробные - от дьявола", в общем, что-то в этом роде. Как он был прав... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2008, 17:59
|
|||
|---|---|---|---|
|
|||
JS: преобразование String-Float с заменой "," на "." и умножением результата на 100 |
|||
|
#18+
Проблему только что решил. Функция выглядит так: function retCents(varIn) { return (varIn.toString().replace(",",".")*100).toFixed() } Оказывается у меня была старая версия документации по MS JScript :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=22&mobile=1&tid=1455474]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 309ms |

| 0 / 0 |
