Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.04.2009, 04:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ZoNT,
1) параметр toFixed не должен быть больше 20
2) непонятно, как оно работает (если честно, я тоже забил разбираться)
3) оно не решает задачу (например, при 7e-30)

Sharp, стоит сразу договориться, что вопрос теоретический (т.е. на практике вряд ли встретится). По-крайней мере, мне не пришла в голову конкретная ситуация, когда это может понадобится
Ответить с цитированием
  #12 (permalink)  
Старый 01.04.2009, 11:24
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Вполне может быть, что моё решение не работает, так как я тестил только в консоли в ФФ:

Ну и конечно же оно не предназначено для случая е+
Ответить с цитированием
  #13 (permalink)  
Старый 01.04.2009, 12:35
Новичок на форуме
Отправить личное сообщение для Sharp Посмотреть профиль Найти все сообщения от Sharp
 
Регистрация: 29.03.2009
Сообщений: 7

Сообщение от x-yuri Посмотреть сообщение
Sharp, стоит сразу договориться, что вопрос теоретический (т.е. на практике вряд ли встретится). По-крайней мере, мне не пришла в голову конкретная ситуация, когда это может понадобится
Ну, допустим, я пишу программу, предназначенную для вычисления емкости колебательного контура по известной индуктивности и резонансной частоте.

f = 96МГц
L = 0.274мкГн

В результате вычислений (результат в Фарадах) получается, что искомое значение емкости равно:
1.0031069383690234e-11Ф

В неэкспоненциальной форме этот результат выглядит как 0.0000000000100031069383690234Ф, что более привычно глазу.
0.0000000000100031069383690234Ф приблизительно равно 10пФ.

P.S.
На самом деле я такую программу действительно пишу, вернее, почти написал (вчера начал). Осталось только разобраться в выводом результата в неэкспоненциальной форме.
Как считаете, что мне с ним сделать?
Ответить с цитированием
  #14 (permalink)  
Старый 01.04.2009, 12:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Более привычно глазу в пФ, вот и выводите результат в них.
Ответить с цитированием
  #15 (permalink)  
Старый 01.04.2009, 12:49
Новичок на форуме
Отправить личное сообщение для Sharp Посмотреть профиль Найти все сообщения от Sharp
 
Регистрация: 29.03.2009
Сообщений: 7

Впринципе, самый компромиссный режим - выводить в микрофарадах.

Хотя, стоп. Можно сделать рядом с полем вывода результата специальный низспадающий список, в котором можно будет выбрать дольную/кратную единицу измерения, и в соответствии с выбранным значением, результат отформатируется. Вот, ИМХО, самое разумное решение.
Kolyaj, как считаете?
Ответить с цитированием
  #16 (permalink)  
Старый 01.04.2009, 13:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я бы стал выводить сразу в тех единицах, в которых легче воспринять результат. Т.е. если результат достаточно большой, то в микро, если маленький, то в пико.
Ответить с цитированием
  #17 (permalink)  
Старый 01.04.2009, 13:44
Новичок на форуме
Отправить личное сообщение для Sharp Посмотреть профиль Найти все сообщения от Sharp
 
Регистрация: 29.03.2009
Сообщений: 7

Согласен, хороший вариант.
Вот моя реализация:
<script>
function formatResult(a) {
   var b = "";
   if (a < 0.000000001) {a = a * 1000000000000; b = a + "пФ"}
   if (a < 0.000001) {a = a * 1000000000; b = a + "нФ"}
   if (a < 0.1) {a = a * 1000000; b = a + "мкФ"}
   if (a < 1) {b = a + "Ф"}
   return b;
}
</script>
<input name="txtResult" value="0.0025">
<input type="button" onclick="alert(formatResult(txtResult.value))">

Можно ли это как-нибудь оптимизировать?
Ответить с цитированием
  #18 (permalink)  
Старый 01.04.2009, 19:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Sharp, удобнее результат 0,1 пФ (для 1.0031069383690234e-11Ф), может быть с большей, заранее заданной точностью

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

p.s. универсальные решения чем-то сродни теоретическим, похоже

ZoNT, а как насчет 7e-150? и почему не replace(/0*$/, '') ?
Ответить с цитированием
  #19 (permalink)  
Старый 02.04.2009, 12:08
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Ну, я бы не стал такие вычисления на js делать, поэтому и не стал бы думать даже над такой функцией... Да и не представляю я, зачем мне нужно перед глазами число, в котором более 12 нулей подряд... Мне наоборот импонирует запись в экспоненциальной форме.

Почему не replace(/0*$/, '')???
ну попробуй сделать alert(3.23e-7.toFixed(100))... Посмотри, что получится...
Ответить с цитированием
  #20 (permalink)  
Старый 02.04.2009, 21:59
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
Ну, я бы не стал такие вычисления на js делать, поэтому и не стал бы думать даже над такой функцией
как я говорил, данная задача редко встречается на практике, имхо. Но если уж писать такую функцию, то надо, чтобы она работала для всех входных параметров я думаю. Есть и другие значения, которые не учитывает твоя функция

Цитата:
Почему не replace(/0*$/, '')???
ну попробуй сделать alert(3.23e-7.toFixed(100))... Посмотри, что получится...
а-а, ты убираешь непонятно откуда берущиеся знаки (у ff точность больше, чем предусмотрено стандартом?). Я считаю, что их надо оставить, потому что это реальное значение, которое хранится в компьютере. А если некрасиво - округлять надо (за пределами функции)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление полей к форме deliro Общие вопросы Javascript 7 22.03.2009 15:20
Обращение к форме октрытого окна SparkDSD Events/DOM/Window 3 27.02.2009 14:02