|
|
|
Разложить число 31,34 на копейки и рубли | ☑ | ||
|---|---|---|---|---|
|
0
buh1977
17.02.11
✎
08:08
|
есть ли типовая функция разложить число на комейки и рубли
|
|||
|
1
buh1977
17.02.11
✎
08:08
|
входящий параметр - дробное число
|
|||
|
2
Mitriy
17.02.11
✎
08:09
|
есть функция Цел
|
|||
|
3
birkoFFFF
17.02.11
✎
08:09
|
а в чем собственно проблема ?
|
|||
|
4
buh1977
17.02.11
✎
08:12
|
надо из числа получить две строки 1 целая другая дробная части
|
|||
|
5
Александр_
Тверь 17.02.11
✎
08:13
|
(4) не, это невозможно, ты же понимаешь. 1С не для этого.
|
|||
|
6
Mitriy
17.02.11
✎
08:14
|
(4) да точно, исправлюсь: есть функция Цел
|
|||
|
7
Rie
17.02.11
✎
08:14
|
(4) Что тебя не устраивает в ответе (2)?
|
|||
|
8
Mitriy
17.02.11
✎
08:15
|
(7) чего непонятно? ему надо...
|
|||
|
9
zak555
17.02.11
✎
08:17
|
(0) нет
|
|||
|
10
ДенисЧ
17.02.11
✎
08:24
|
Я тут поковырялся в украденных СП и пришёл к выводу, что в 1с это сделать невозможно. Нужно писать внешнюю компоненту...
|
|||
|
11
buh1977
17.02.11
✎
08:26
|
функцией Цел я получил 0,81 -как из него получить 81
|
|||
|
12
ДенисЧ
17.02.11
✎
08:27
|
(11) читай (10)
|
|||
|
13
andrewks
17.02.11
✎
08:27
|
(11) О_О
(10) будешь теперь ВК продавать? ;-) |
|||
|
14
butterbean
17.02.11
✎
08:29
|
(11) с помощью учебника по математике за 5-й класс
|
|||
|
15
Джинн
17.02.11
✎
08:30
|
(11) Думаю тут нужно нанять специалиста.
|
|||
|
16
Зеленый Кот
17.02.11
✎
08:30
|
вот и пришло молодое поколение одинэсников ;)
|
|||
|
17
andrewks
17.02.11
✎
08:30
|
(14) за 5-й? у меня дочка в 1-м - уже проходили
|
|||
|
18
DrShad
17.02.11
✎
08:30
|
(11) и как же это у тебя из 31,34 получилось 0,81?
|
|||
|
19
aleks-id
17.02.11
✎
08:30
|
Рубли = Цел(ТвоеЧисло);
Копейки = ТвоеЧисло-Рубли; когда ж ламерство то прекратится... |
|||
|
20
Любопытная
17.02.11
✎
08:31
|
(17) Не, по-моему все-таки в третьем
|
|||
|
21
zak555
17.02.11
✎
08:31
|
(18) через функцию, разложенную в ряд
|
|||
|
22
andrewks
17.02.11
✎
08:31
|
(16) заметь, и это ещё реформа образования не прошла
|
|||
|
23
andrewks
17.02.11
✎
08:32
|
(20) ты наверное про дроби. а я про умножение на 100
|
|||
|
24
Любопытная
17.02.11
✎
08:34
|
(23) Умножение у меня дочка в третьем классе изучать начала. А умножать на 10 и 100 еще в 5 лет умела. Но в первом классе это по-моему еще не изучали
|
|||
|
25
DrShad
17.02.11
✎
08:35
|
(19) вот именно когда, ведь у тебя все равно выйдет не 34 копейки а 0,34 рубля
|
|||
|
26
zak555
17.02.11
✎
08:35
|
умножение - второй класс
|
|||
|
27
Любопытная
17.02.11
✎
08:37
|
Вероятно разница в программах. Таблицу умножения нам задавали учить на лето после 1го класса, но заниматься ей мы стали в самом конце второго
|
|||
|
28
andrewks
17.02.11
✎
08:38
|
а задачка-то не такая тривиальная, как показалась с первого раза :-)))
Рубли = Цел(ТвоеЧисло); Копейки = Окр(Макс(ТвоеЧисло,Рубли)-Мин(ТвоеЧисло,Рубли),2,1)*100; |
|||
|
29
zak555
17.02.11
✎
08:39
|
вообще , таблицу умножения знать необязательно
|
|||
|
30
DrShad
17.02.11
✎
08:39
|
(28) ага точно
|
|||
|
31
DJ Anthon
17.02.11
✎
08:41
|
коленку предлагали?
|
|||
|
32
zak555
17.02.11
✎
08:43
|
(28) туда даже курс не передашь =)
|
|||
|
33
andrewks
17.02.11
✎
08:45
|
(31) ты свою предлагаешь? О_о
|
|||
|
34
DJ Anthon
17.02.11
✎
08:47
|
(28) это, по твоему нетривиально??
|
|||
|
35
hd1
17.02.11
✎
08:48
|
Строки же просят, а вы умножение, округление...
Сумма = "31,34"; Запятая = Лев(Сумма,1); Пока Запятая <> "," Цикл Рубли = Рубли + Лев(Сумма,1); Сумма = Прав(Сумма, СтрДлина(Сумма)-1); Запятая = Лев(Сумма,1); КонецЦикла; Копейки= Прав(Сумма, СтрДлина(Сумма)-1); |
|||
|
36
Фокусник
17.02.11
✎
08:50
|
(28) может я еще не проснулся, но вроде как достаточно так:
не? :) |
|||
|
37
Mikeware
17.02.11
✎
08:51
|
"количество разума на земле - константа. а население - растет..."©
|
|||
|
38
hd1
17.02.11
✎
08:52
|
(35) плюс надо это все упаковать в функцию, которая возвращает список значений.
|
|||
|
39
miki
17.02.11
✎
08:53
|
(35)сколько копеек вернет для "31,3"?
|
|||
|
40
hd1
17.02.11
✎
08:54
|
(39) эх, упустил, надо нулями добить до длины 2
|
|||
|
41
andrewks
17.02.11
✎
08:55
|
(36) "входящий параметр - дробное число"
не сказано, что оно положительное, и имеет не более 2-х знаков после запятой. а я стараюсь в меру сил делать алгоритмы устойчивые к входным данным. до кучи можно ещё забацать в начале проверку на тип значения ))) |
|||
|
42
Ненавижу 1С
гуру
17.02.11
✎
08:56
|
Цел() работает математически неверно, она дает:
Цел(-1.52)=-1, а правильно -2 |
|||
|
43
Man4kin
17.02.11
✎
08:57
|
Сумма = "31,34";
Буфер = стрЩаменить(Сумма,",",Символы.ПС); Рубли = стрПолучитьСтроку(Буфер,1); Копейки = стрПолучитьСтроку(Буфер,2); |
|||
|
44
andrewks
17.02.11
✎
08:58
|
(42) чо то ты загнался с утра пораньше.
|
|||
|
45
Stepa86
17.02.11
✎
08:59
|
(28) Макс(ТвоеЧисло,Рубли) всегда равно ТвоеЧисло, потому что ТвоеЧисло >= Цел(ТвоеЧисло) (*)
Мин(ТвоеЧисло,Рубли) всегда равно Рубли, аналогично (*) Нужно округлять или нет, это уже от задачи зависит и входных данных, вот и получаем (36) |
|||
|
46
Man4kin
17.02.11
✎
08:59
|
(43) исправил
Буфер = стрЗаменитьСтроку(Сумма,",",Символы.ПС); |
|||
|
47
andrewks
17.02.11
✎
08:59
|
(45) ышо адын... попей кофейку, проснись
|
|||
|
48
Stepa86
17.02.11
✎
09:00
|
(42) из СП "Вычисляет целую часть переданного числа, полностью отсекая дробную часть."
так что она делает ровно то, что написано в описании... |
|||
|
49
Stepa86
17.02.11
✎
09:00
|
(47) пью пью
|
|||
|
50
Волесвет
17.02.11
✎
09:00
|
спасибо, посмеялся...
зы тож пошучу вместо символа "," вставить перенос на следующую строку... |
|||
|
51
Фокусник
17.02.11
✎
09:01
|
(41) с отрицательным числом (36) вполне справляется :)
|
|||
|
52
Stepa86
17.02.11
✎
09:03
|
(47) а чо не так то?
|
|||
|
53
Фокусник
17.02.11
✎
09:03
|
(51)+
результат: |
|||
|
54
andrewks
17.02.11
✎
09:05
|
(51) ну, если знак всего числа в копейках д.б. сохранён - то да. тут как поставят условие
|
|||
|
55
andrewks
17.02.11
✎
09:06
|
(52) я в (41) уже всё написал
|
|||
|
56
mikecool
17.02.11
✎
09:08
|
люди - пятница завтра
но все равно - спасибо за хорошее настроение )) |
|||
|
57
Stepa86
17.02.11
✎
09:09
|
(55) не увидел там объяснения использования Макс( и Мин( , особенно если (42)
|
|||
|
58
Stepa86
17.02.11
✎
09:12
|
+(57) для работы с отр. цифрами я б вначале лучше вот так сделал, чем усложнять алгоритм:
Если пЧисло < 0 Тогда Возврат Коллекции.СоздатьМассив( - ВыделитьРубли( - пЧисло ) , - ВыделитьКопейки( - пЧисло ) ); КонецЕсли |
|||
|
59
andrewks
17.02.11
✎
09:13
|
(57) это аналог abs(), чтобы в копейках минуса не было, потому как спинным мозгом чую, результат будет использоваться для дальнейшего вывода. про (42) вообще не понял, кто что хочет сказать
|
|||
|
60
Адинэснег
17.02.11
✎
09:13
|
lol :-d
|
|||
|
61
Stepa86
17.02.11
✎
09:19
|
(59) то есть -2.49 вернет -2 рубля и 49 копеек, но если их потом сложить, то получим -1.51
|
|||
|
62
andrewks
17.02.11
✎
09:21
|
(61) кофе допивай уже скорее, подключай зрительный нерв
"потому как спинным мозгом чую, результат будет использоваться для дальнейшего вывода." и будет у тебя гореть: -2 руб. -49 коп. как тебе это, нормуль? |
|||
|
63
NcSteel
17.02.11
✎
09:23
|
(62) Отрицательное в топку.
|
|||
|
64
Фокусник
17.02.11
✎
09:24
|
(62) Это ты уже какую-то свою задачу решаешь, исходная: "разложить число на копейки и рубли" :)
|
|||
|
65
Stepa86
17.02.11
✎
09:25
|
(62) ну дык метод выделения и метод формирования строки нужно разделять, а не лепить все в одном месте
|
|||
|
66
Ненавижу 1С
гуру
17.02.11
✎
09:28
|
(48) "Вычисляет целую часть переданного числа, полностью отсекая дробную часть" - какое противоречие во фразе
В математике, целая часть вещественного числа x — округление x до ближайшего целого в меньшую сторону wiki:Целая_часть |
|||
|
67
andrewks
17.02.11
✎
09:28
|
(65) странно это услышать от тебя после (58)
ЗЫ ладно, мужики, посмеялись, и будет, арбайтен, арбайтен! |
|||
|
68
Stepa86
17.02.11
✎
09:29
|
(64) исходная задача вообще "Разложить число 31,34 на копейки и рубли" - правильный ответ 31 руб. 34 коп.
|
|||
|
69
Armando
17.02.11
✎
09:30
|
Мордобой будет?
|
|||
|
70
NcSteel
17.02.11
✎
09:31
|
(69) Подходи по одному.
|
|||
|
71
miki
17.02.11
✎
09:31
|
добьем до 100? © SH
|
|||
|
72
Megas
17.02.11
✎
09:33
|
ВЫДЫХАЙ!
|
|||
|
73
Fragster
гуру
17.02.11
✎
09:34
|
пятница завтра же
|
|||
|
74
Stepa86
17.02.11
✎
09:35
|
(67) в (58) только работа с чиселками, никакого форматирования, и вообще у меня еще кофе не все...
(66) судя по описанию (ну и на самом деле) метод тупо отсекает то, что после запятой. Там НЕ сказано, что это математически верный метод, и что "округление x до ближайшего целого в меньшую сторону ". Я не спорю, что возможно правильнее бы было сделать как в вики, но метод делает ровно то, что описано в СП |
|||
|
75
Ненавижу 1С
гуру
17.02.11
✎
09:35
|
(74) ну я чисто только потому что ник такой
|
|||
|
76
lxs
17.02.11
✎
09:52
|
"в споре рождается истина"©
|
|||
|
77
Fragster
гуру
17.02.11
✎
09:56
|
я таки думаю, что автору нужно почитать СП по Формат()
|
|||
|
78
zak555
17.02.11
✎
16:29
|
"отрицательные" рубли ещё не округляли ?
|
|||
|
79
Aprobator
17.02.11
✎
16:33
|
(77) озверел? Из строки рубли и копейки получать )))
|
|||
|
80
hhhh
17.02.11
✎
17:04
|
(79) а чего? Вроде нормально выходит.
Стр = СокрЛП(Формат(Сумма * 100, ....)); Дл = СтрДлина(Стр); Копейки = Сред(Стр, Дл - 1); Рубли = Лев(Стр, Дл - 2); |
|||
|
81
Fragster
гуру
17.02.11
✎
17:07
|
(79) я таки подумал, что автору таки надо в конце концов строку "32 рубля 31 копейка" получить
|
|||
|
82
zak555
17.02.11
✎
17:08
|
(81) будет весело, если изначально автору и надо получить "пропись" =)
|
|||
|
83
Aprobator
17.02.11
✎
17:12
|
(82) +100500 точняк!!!
(80) фу: |
|||
|
84
GreyK
17.02.11
✎
17:19
|
Пятница уже пришла? :)
|
|||
|
85
MaxFoxxy
17.02.11
✎
17:19
|
вот такой вариант :
// Функция "расщепляет" строку на подстроки, используя заданный // разделитель. Разделитель может иметь любую длину. // Если в качестве разделителя задан пробел, рядом стоящие пробелы // считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр // игнорируются. // Например, // РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, // три из которых - пустые строки, а // РазложитьСтрокуВМассивПодстрок(" ку му", " ") возвратит массив значений из двух элементов // // Параметры: // Стр - строка, которую необходимо разложить на подстроки. // Параметр передается по значению. // Разделитель - строка-разделитель, по умолчанию - запятая. // // // Возвращаемое значение: // массив значений, элементы которого - подстроки // Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить Массив = РазложитьСтрокуВМассивПодстрок(Строка(ТвоеЧисло),","); Руб = Массив[0]; Коп = Массив[1]; |
|||
|
86
Aprobator
17.02.11
✎
17:19
|
(84) разминаемся )
|
|||
|
87
ado
17.02.11
✎
17:25
|
(37) А в 77-м что взрывалось?
|
|||
|
88
ДенисЧ
17.02.11
✎
17:30
|
(87)
8 января — в Москве прогремело 3 взрыва, осуществлённых армянскими националистами. 25 февраля — пожар в московской гостинице «Россия». |
|||
|
89
ДенисЧ
17.02.11
✎
17:32
|
27 марта — крупнейшая за всю историю авиации катастрофа. В Тенерифе (Испания) столкнулись 2 самолёта, погибли 583 человека.
5 апреля — начало серийного производства «Нивы». 2 мая — на остановочном пункте Крыжовка произошёл наезд пассажирского поезда Гродно — Орша на пригородный электропоезд. Катастрофа в Крыжовке — самая крупная из всех, что случались когда-либо в Белорусской ССР на железной дороге. 25 мая — в кинотеатрах США начались показы фильма Звёздные Войны. Эпизод IV: Новая надежда. 21 июня — в кинотеатрах США начались показы 22-го по счёту мультфильма Уолта Диснея «Спасатели». 7 октября — принята Конституция СССР. |
|||
|
90
AaNnDdRrEeYy
17.02.11
✎
17:51
|
17 февраля - найден алгоритм в 1С по разложению числа 31,34.
|
|||
|
91
mm_84
17.02.11
✎
17:59
|
(11) ты где учился?
|
|||
|
92
hhhh
17.02.11
✎
18:10
|
(83) с отрицательными затык. А в (80) всё путём.
|
|||
|
93
Mikeware
17.02.11
✎
18:13
|
(87)Мутации есть всегда. просто статистически в год взрыва на Маяке и в год взрыва ЧАЭС их, по понятным причинам, больше...
|
|||
|
94
Aprobator
18.02.11
✎
09:10
|
(92) нет там никакого затыка. Функция Цел разве знак рубит?
|
|||
|
95
Paciffist
18.02.11
✎
09:22
|
Идите, работайте лучше.
|
|||
|
96
Snorkler
18.02.11
✎
09:35
|
Пацаны, вы ничего не понимаете…
Человек в (0) спрашивает про типовую функцию для разложить на коМейки и рубли. Поэтому правильный ответ такой: Рубли = Окр(Сумма, 0); Комейки = 0; . |
|||
|
97
DJ Anthon
18.02.11
✎
16:40
|
(96) скомейка = 0,01 комейки
|
|||
|
98
andrewks
18.02.11
✎
16:41
|
(95) поработали, чё дальше делать? =)
|
|||
|
99
Aprobator
18.02.11
✎
16:43
|
(98) жди ЗП )
|
|||
|
100
andrewks
18.02.11
✎
16:44
|
(99) ))) как раз аванс сегодня уже получил! можно идти домой?
|
|||
|
101
andrewks
18.02.11
✎
16:45
|
+(100) тщорт, не заметил 100!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |