Вверх ↑
Этот топик читают: Гость
Ответов: 288
Рейтинг: 4
#121: 2016-10-17 16:09:09 ЛС | профиль | цитата
Не-не, nesco, всё известно.
Смотри.
Котеровка всегда выходит в таком виде (1,2357)
Там есть элемент определяющий длину строки.
Отнимаем первые 2 символа (1,) и получаем длину дробной части!

--- Добавлено в 2016-10-17 16:32:27

Блин, nesco, чуть ступил, не только в таком (1,2357), Но и в таком (14,23) встречается!
Но всёравно всё поправимо.
Допустим получаем (14,23) и определяем длину строки (=5)
Элементом Position (тоже есть) ищем позицию запятой, и таким образом узнаём сколько символов до запятой и сколько после.

Редактировалось 1 раз(а), последний 2016-10-17 16:32:27
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#122: 2016-10-17 18:01:15 ЛС | профиль | цитата
Sova-Kmv, а StringBuilder для тебя не мясо ?

Редактировалось 1 раз(а), последний 2016-10-17 18:01:54
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 288
Рейтинг: 4
#123: 2016-10-17 18:10:38 ЛС | профиль | цитата
Tad, в смысле?
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#124: 2016-10-17 19:17:02 ЛС | профиль | цитата
Sova-Kmv писал(а):
Имея просто значение, допустим это будет (1,2357) или (777,23) или (57,66) или (1,678) или (575,1), Возможно-ли
с помощью какой ни-ть чудо формулы получить то-же самое значение (цифры) но только уже без запятой!
Умножить на 10000
А <полученное число> mod 10000 выдаст тебе то, что было после запятой.

Редактировалось 1 раз(а), последний 2016-10-17 19:28:46
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 288
Рейтинг: 4
#125: 2016-10-17 19:47:25 ЛС | профиль | цитата
Tad, Почему на 10000, на 1! зачем мне лишние нули!

Add(MainForm,2953706,154,42)
{
Width=292
Height=162
}
Add(Edit,8517553,203,42)
{
Left=55
Text="1,2357"
}
Add(Button,2561382,154,112)
{
link(onClick,14777906:doCalc,[])
}
Add(MathParse,14777906,203,112)
{
MathStr="%1 * %2"
link(onResult,5501360:In,[])
link(X1,8517553:Text,[])
link(X2,5679968:getVar,[])
}
Add(Edit,10272646,308,42)
{
Left=105
Top=50
Text="1"
}
Add(Edit,14180556,455,42)
{
Left=160
Top=50
Width=110
}
Add(Edit,12573788,203,154)
{
Left=55
Top=20
Text="777,23"
}
Add(Button,8831026,154,224)
{
Top=20
link(onClick,12232051:doCalc,[])
}
Add(MathParse,12232051,203,224)
{
MathStr="%1 * %2"
link(onResult,14176454:In,[])
link(X1,12573788:Text,[])
link(X2,1411398:getVar,[])
}
Add(Hub,11797868,420,42)
{
InCount=6
OutCount=1
link(onEvent1,14180556:doText,[])
}
Add(LineBreak,1003992,378,42)
{
link(Out,11797868:doEvent1,[])
Primary=[5501360,-126,70]
}
Add(LineBreak,1077792,378,49)
{
link(Out,11797868:doEvent2,[])
Primary=[14176454,-119,175]
}
Add(LineBreakEx,3517032,308,84)
{
Caption="str"
Type=3
link(_Data,10272646:Text,[])
}
Add(LineBreakEx,5679968,210,84)
{
Caption="str"
Type=2
}
Add(LineBreakEx,1411398,210,196)
{
Caption="str"
Type=2
}
Add(Edit,13573206,203,266)
{
Left=55
Top=40
Text="57,66"
}
Add(Button,6724599,154,336)
{
Top=40
link(onClick,8227778:doCalc,[])
}
Add(MathParse,8227778,203,336)
{
MathStr="%1 * %2"
link(onResult,8060106:In,[])
link(X1,13573206:Text,[])
link(X2,12799886:getVar,[])
}
Add(LineBreak,2494390,378,56)
{
link(Out,11797868:doEvent3,[])
Primary=[8060106,-119,280]
}
Add(LineBreakEx,12799886,210,308)
{
Caption="str"
Type=2
}
Add(Edit,14873686,203,378)
{
Left=55
Top=60
Text="1,678"
}
Add(Button,4529925,154,448)
{
Top=60
link(onClick,5292611:doCalc,[])
}
Add(MathParse,5292611,203,448)
{
MathStr="%1 * %2"
link(onResult,1061630:In,[])
link(X1,14873686:Text,[])
link(X2,3958800:getVar,[])
}
Add(LineBreak,990232,378,63)
{
link(Out,11797868:doEvent4,[])
Primary=[1061630,-119,385]
}
Add(LineBreakEx,3958800,210,420)
{
Caption="str"
Type=2
}
Add(Edit,13602383,203,490)
{
Left=55
Top=80
Text="575,1"
}
Add(Button,4419067,154,560)
{
Top=80
link(onClick,13057693:doCalc,[])
}
Add(MathParse,13057693,203,560)
{
MathStr="%1 * %2"
link(onResult,4382475:In,[])
link(X1,13602383:Text,[])
link(X2,15940383:getVar,[])
}
Add(LineBreak,212539,378,70)
{
link(Out,11797868:doEvent5,[])
Primary=[4382475,-119,490]
}
Add(LineBreakEx,15940383,210,532)
{
Caption="str"
Type=2
}
Add(Edit,10629012,203,602)
{
Left=55
Top=100
Text="0,1587"
}
Add(Button,8982081,154,672)
{
Top=100
link(onClick,2847125:doCalc,[])
}
Add(MathParse,2847125,203,672)
{
MathStr="%1 * %2"
link(onResult,3878266:In,[])
link(X1,10629012:Text,[])
link(X2,6979876:getVar,[])
}
Add(LineBreak,7485666,378,77)
{
link(Out,11797868:doEvent6,[])
Primary=[3878266,-119,595]
}
Add(LineBreakEx,6979876,210,644)
{
Caption="str"
Type=2
}


Редактировалось 1 раз(а), последний 2016-10-17 21:53:03
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#126: 2016-10-17 19:52:44 ЛС | профиль | цитата
Sova-Kmv писал(а):
Почему на 10000
Потому, что у тебя после запятой может быть 4-е знака.

Add(MainForm,2953706,91,168)
{
}
Add(MathParse,15930816,210,126)
{
MathStr="%1 * 10000"
link(onResult,5630393:doWork2,[])
link(X1,9094569:Text,[])
}
Add(Memo,5531569,308,126)
{
Left=185
Top=20
Width=180
Height=235
}
Add(Edit,9094569,210,70)
{
Left=50
Top=20
Width=115
Text="14.4567"
}
Add(MathParse,8159449,210,175)
{
MathStr="%1 mod 10000"
ResultType=0
link(onResult,5630393:doWork3,[(284,181)])
link(X1,15930816:Result,[])
}
Add(Hub,9287031,161,119)
{
OutCount=3
link(onEvent1,5531569:doClear,[(299,125)(299,139)])
link(onEvent2,15930816:doCalc,[])
link(onEvent3,8159449:doCalc,[(189,139)(189,181)])
}
Add(HubEx,5630393,280,126)
{
link(onEvent,5531569:doAdd,[])
}
Add(Button,6820118,91,119)
{
Left=45
Top=60
link(onClick,9287031:doEvent1,[])
}

Если бывает 5 знаков, то будешь множить на 100000

Редактировалось 3 раз(а), последний 2016-10-17 19:59:32
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8921
Рейтинг: 823
#127: 2016-10-17 20:02:37 ЛС | профиль | цитата
Sova-Kmv, кроме того вместо "запятой" может быть и "точка" и "*1" не прокатит
А любые манипуляции с цифрой, как указал nesco, обязательно нарвутся на двоичное представление, которое в части дробей не совпадает с десятичным например:
схемка


Add(MainForm,2953706,273,140)
{
}
Add(Edit,6683489,273,91)
{
Left=10
Top=20
Width=125
ClearAfterEnter=1
link(onEnter,1258696:doWork2,[])
}
Add(Edit,11833794,483,140)
{
Left=170
Top=20
Width=140
DataType=4
}
Add(MathParse,12775788,329,98)
{
DataCount=1
MathStr="(%1>trunc(%1))*%1*10"
link(onResult,13411975:doCompare,[])
}
Add(If_else,13411975,378,98)
{
Type=5
Op2=Real(0)
link(onTrue,7876731:doValue,[])
link(onFalse,10326413:doData,[(424,111)(424,146)])
}
Add(HubEx,1258696,315,98)
{
link(onEvent,12775788:doCalc,[])
}
Add(DoData,10326413,434,140)
{
link(onEventData,11833794:doText,[])
link(Data,7876731:Value,[])
}
Add(Memory,7876731,434,98)
{
link(onData,1258696:doWork1,[(473,104)(473,90)(319,90)])
}
Так что от строки с удалением десятичных разделителей никуда не деться
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#128: 2016-10-17 20:29:12 ЛС | профиль | цитата
Леонид писал(а):
Так что от строки с удалением десятичных разделителей никуда не деться
Sova-Kmv писал(а):
Т.е из этого 1,2357 получить вот это 12357
Т.е из этого 777,23 получить вот это 77723
Т.е из этого 57,66 получить вот это 5766
Т.е из этого 1,678 получить вот это 1678
Т.е из этого 575,1 получить вот это 5751
Если просто удалить разделители, соотношение между полученными значениями изменятся.
Например: 57.66 > 1.678 ~ в 34 раза, а
5766 > 1678 ~ в 3.5 раза.
Ну и нахрена такая арифметика ?
Выход был предложен выше: умножить на 10000

Редактировалось 1 раз(а), последний 2016-10-17 20:31:16
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 288
Рейтинг: 4
#129: 2016-10-17 20:42:27 ЛС | профиль | цитата
Так, ребята, вы меня совсем запутали (Я-ж вам не математик!)
Tad, ты мне одно скажи, вот эта твоя схемка будет работать так как мне надо или нет

Add(MainForm,2953706,91,168)
{
}
Add(MathParse,15930816,210,126)
{
MathStr="%1 * 10000"
link(onResult,5630393:doWork2,[])
link(X1,9094569:Text,[])
}
Add(Memo,5531569,308,126)
{
Left=185
Top=20
Width=180
Height=235
}
Add(Edit,9094569,210,70)
{
Left=50
Top=20
Width=115
Text="14.4567"
}
Add(MathParse,8159449,210,175)
{
MathStr="%1 mod 10000"
ResultType=0
link(onResult,5630393:doWork3,[(284,181)])
link(X1,15930816:Result,[])
}
Add(Hub,9287031,161,119)
{
OutCount=3
link(onEvent1,5531569:doClear,[(299,125)(299,139)])
link(onEvent2,15930816:doCalc,[])
link(onEvent3,8159449:doCalc,[(189,139)(189,181)])
}
Add(HubEx,5630393,280,126)
{
link(onEvent,5531569:doAdd,[])
}
Add(Button,6820118,91,119)
{
Left=45
Top=60
link(onClick,9287031:doEvent1,[])
}
Или-же есть изъян, т.е число с которым твоя схемка работает не так как мне нужно.

Редактировалось 3 раз(а), последний 2016-10-17 21:50:13
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#130: 2016-10-17 20:49:51 ЛС | профиль | цитата
Sova-Kmv писал(а):
не так как мне нужно.
А как тебе нужно ?
Если бы я знал, как и что тебе нужно, мне бы цены не было.

Вот что тебе нужно, так это научиться правильно викладывать коды
LoadCode.JPG
Если понял - исправь предыдущие посты.

Редактировалось 7 раз(а), последний 2016-10-17 21:12:43
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 288
Рейтинг: 4
#131: 2016-10-17 21:19:11 ЛС | профиль | цитата
Tad, вот в твоей схемке было вбито число 14.4567, и твоя схемка всё сделала для меня правильно, т.е удалила точку и получила результат 144567
Вот собственно я и хочу узнать, будет ли твоя схемка, тупо убирать точку из любого значения без изменения цифр(естественно учитывая нужное кол-во нулей). Или-же всё-таки есть какое-то значение при котором результат может вылезти не таким как ожидалось. Т.е без точки, но с изменёнными цифрами.
карма: 2

0
Ответов: 8921
Рейтинг: 823
#132: 2016-10-17 21:32:11 ЛС | профиль | цитата
Sova-Kmv писал(а):
Т.е из этого 1,2357 получить вот это 12357
...
Т.е из этого 57,66 получить вот это 5766

Tad писал(а):
Ну и нахрена такая арифметика ?

Это дело ТС и он знает на хрена (может и "ни" )
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#133: 2016-10-17 22:13:09 ЛС | профиль | цитата
Sova-Kmv писал(а):
Или-же всё-таки есть какое-то значение при котором результат может вылезти не таким как ожидалось. Т.е без точки, но с изменёнными цифрами
может, если первичное число больше чем 214748,3647

Редактировалось 1 раз(а), последний 2016-10-17 22:14:06
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 288
Рейтинг: 4
#134: 2016-10-17 22:44:37 ЛС | профиль | цитата
Ясно Tad.
Ребята, Спасибо вам всем ОГРОМНОЕ.
Очень вам благодарен!
карма: 2

0
Ответов: 9906
Рейтинг: 351
#135: 2016-10-18 05:21:41 ЛС | профиль | цитата
Sova-Kmv писал(а):
e возвращает число e = 2.17

ДОКОЛЕ
В смысле, сколько десятилетий еще надо
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)