|
|
|||||
Регистрация: Dec 2013
Сообщений: 24
|
Помогите выдает 0 при расчете
Доброе время суток
Я в AS3 2 суток всего и разобраться пока ещё не успел но вот моё уравнение j_n = j_inp.text; R_yadr = Ryadr_inp.text; co_n = c_inp.text; Tn1_num = parseInt(j_n) * parseInt(R_yadr); Tn2_num = Math.pow(parseInt(co_n), 2); Tn_num = parseInt(Tn1_num) / parseInt(Tn2_num); Tn_num.toString(); Tn_txt.text = String(Tn_num); то в результате появляется 0 при расчете. Что делать? вроде как округление не такое должно быть. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Вы какой тип используете для переменных с числами? Нужно Number.
|
|
|||||
Регистрация: Dec 2013
Сообщений: 24
|
Вот такой, я то понимаю что нужно численный тип, или вы имеете ввиду что при численном типе у меня не будет так сильно округлять и писать "Infinity" в ответе?
Вот скачайте файл все поймете когда вводите малые числа выбивает ошибки. import flash.events.MouseEvent; equally_btn.addEventListener(MouseEvent.CLICK, equClick); //Включаем рамку для поля ввода alf_inp.border = true; c_inp.border = true; j_inp.border = true; kbr_inp.border = true; Lyadr_inp.border = true; Lzg_inp.border = true; Ryadr_inp.border = true; Rzg_inp.border = true; Kpu_inp.border = true; Kg_txt.border = true; Tg_txt.border = true; //разрешаем регистр alf_inp.restrict = "0-9,,,.,"; c_inp.restrict = "0-9,,,.,"; j_inp.restrict = "0-9,,,.,"; kbr_inp.restrict = "0-9,,,.,"; Lyadr_inp.restrict = "0-9,,,.,"; Lzg_inp.restrict = "0-9,,,.,"; Ryadr_inp.restrict = "0-9,,,.,"; Rzg_inp.restrict = "0-9,,,.,"; Kpu_inp.restrict = "0-9,,,.,"; //-----Тело калькулятора-----\\ //переменные var L_zg:String; var R_zg:String; var al_ugol:String; var L_yadr:String; var R_yadr:String; var j_n:String; var co_n:String; var k_br:String; var K_pu:String; //мои числа для формул var Tg_num:Number; var Kg_num:Number; var Tn_num:Number; var Tn1_num:*; var Tn2_num:*; var Te_num:Number; var Ku_num:Number; var Ki_num:Number; function equClick(event:MouseEvent):void{ //Считаем Тг parseInt() L_zg = Lzg_inp.text; //соеденил то что ввел и значение стринг R_zg = Rzg_inp.text; Tg_num = parseInt(L_zg) / parseInt(R_zg); Tg_num.toString(); Tg_txt.text = String(Tg_num); //Считаем Кг Math.tan() parseInt() al_ugol = alf_inp.text; Kg_num = Math.tan(parseInt(al_ugol) * Math.PI/180) / parseInt(R_zg); Kg_num.toString(); Kg_txt.text = String(Kg_num); //Считаем Tн parseInt() Какогото Х сильно округляет числитель //РАЗБЕРАЮСЬ j_n = j_inp.text; R_yadr = Ryadr_inp.text; co_n = c_inp.text; Tn1_num = parseInt(j_n) * parseInt(R_yadr); Tn2_num = Math.pow(parseInt(co_n), 2); Tn_num = parseInt(Tn1_num) / parseInt(Tn2_num); Tn_num.toString(); Tn_txt.text = String(Tn_num); //Считаем Тэ parseInt() L_yadr = Lyadr_inp.text; Te_num = parseInt(L_yadr) / parseInt(R_yadr); Te_num.toString(); Te_txt.text = String(Te_num); //Считаем Кu parseInt() Происходит сильное округление Ku_num = 1 / parseInt(co_n); Ku_num.toString(); Ku_txt.text = String(Ku_num); //Считаем Кi parseInt() Ki_num = parseInt(R_yadr) / parseInt(co_n); Ki_num.toString(); Ki_txt.text = String(Ki_num); } Я по моему понял в чем загвоздка! В решении уравнений я пишу parseInt(любая переменная) что бы считало её как Интеджер (целочисленую) а ввожу малые числа с запятыми, может оно их и округляем и из-за этого получаются такие ответы? может есть другой способ делать решение уравнений без это parseInt() команды? Подскажите новенькому.
__________________
Держись, дальше только хуже! |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Тип Number выводит реальные числа, тип int и uint округляют.
И соответственно, метод parseInt преобразует значение в тип int, который округляет. Попробуйте parseFloat. |
|
|||||
Регистрация: Dec 2013
Сообщений: 24
|
Цитата:
спасибо вам огромное Вы мне очень сильно помогли и выручили! теперь буду знать ещё раз спасибо!
__________________
Держись, дальше только хуже! |
Часовой пояс GMT +4, время: 06:11. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|