Имя: Пароль:
1C
1С v8
Функция Окр() некорректное округление
,
0 karpos
 
18.06.14
12:27
Всем привет. Всем хорошего настроения. Есть задача получить из времени долю часа. И функция Окр(Число, 0) некорректно работает.

Пример первый время 14:40, берем минуты Число = 40 / 60 * 100, в переменной Число получается значение 66.666666666667
Окр(Число, 0). Берем целую часть и получается 14,67

Пример второй время 14:05, берем минуты Число = 05 / 60 * 100, в
переменной Число получается значение 8,333333333333 Окр(Число, 0).
Берем целую часть и получается 14,8 а должно быть 14,08
1 f_vadim
 
18.06.14
12:29
у тебя в коде ошибка
2 karpos
 
18.06.14
12:30
где ?
3 f_vadim
 
18.06.14
12:30
Окр работает корректно.
На прошлой неделе тоже был товарищ, который в платформе багу нашёл с округлением. Школу, видимо, прогуливал.
4 f_vadim
 
18.06.14
12:31
(2) дык покажи код, скажу где
5 ДенисЧ
 
18.06.14
12:31
(1) в генетическом?
6 karpos
 
18.06.14
12:32
ты напиши просто как округлить корректно 8,333333333333 чтоб получилось 0,8
7 f_vadim
 
18.06.14
12:33
(6) бгы, тут делить надо, а не округлять
8 Segate
 
18.06.14
12:34
(6) ты упрлс? Ответ никак. целая часть числа 8.(3) = 8.
9 SSSSS_AAAAA
 
18.06.14
12:35
(6) Вот ты и напиши по каким таким математическим правилам при округлении 8,333333333333 чтоб получилось 0,8?
10 f_vadim
 
18.06.14
12:35
(6) на 100 не умножай, и округляй до второго знака.
не за что.
11 MiniMuk
 
18.06.14
12:35
(0) зачем на 100 умножаешь? бери округля до 2 знака после зяпятой получишь  14:05, берем минуты Число = 05 / 60 =0,08+14=14,08
12 Lokli
 
18.06.14
12:35
Формула не верная.
Лучше так: доля часа = 1/(60/min)
13 Wobland
 
18.06.14
12:35
14 SSSSS_AAAAA
 
18.06.14
12:36
К тому же, тебе точно надо 0,8? Или таки 08? Разницу чуешь?
15 MiniMuk
 
18.06.14
12:36
(6) просто 8 это у тебя не число а процен! бери 60*8%
16 f_vadim
 
18.06.14
12:37
(12) тоже школу прогуливал?
17 Euguln
 
18.06.14
12:37
И все же (1) + 1.
Видимо результат человек получает путем Время = Часы + ДоляМинут. И скорее всего это строки. )))
18 MiniMuk
 
18.06.14
12:38
(17) Только если он про генетический
19 Lokli
 
18.06.14
12:39
(16) поясни. в (11) по сути, тоже самое написали.
20 f_vadim
 
18.06.14
12:40
(19) 1/(60/min) = min/60
что мы и видим в (0)

только умножение на 100 лишнее
21 PR
 
18.06.14
12:40
(0) О, еще один правдорубец :))
22 Lokli
 
18.06.14
12:41
(20) зря предираешься. Одну и ту же ошибку мы видим по разному и предлагаем внешне разные пути решения. А суть одна.
23 Fragster
 
гуру
18.06.14
12:42
специально для автора в 1с придумали тип "Дата" с квалификатором "время"
24 Жан Пердежон
 
18.06.14
12:43
Автор нуб и опозорился! (с)
25 kosts
 
18.06.14
12:48

Цел(8.05) + Окр((8.05 - Цел(8.05))*100/60,2) = 8.08
26 Euguln
 
18.06.14
12:52
(25) да
27 forforumandspam
 
18.06.14
14:00
Я грешным делом подумал, что вот эту ветку кто-то оживил v8: Странности 1с
28 karpos
 
18.06.14
15:04
разобрался спасибо
29 Segate
 
18.06.14
15:05
(28)отрепортил в 1с? )