forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   А как? (http://forum.boolean.name/showthread.php?t=13959)

Sloth 29.12.2010 11:19

А как?
 
как округлить число до 0,1 ?
например: из 15,44444444444444 сделать 15,4

а еще в программе кнопку "далее" приходится нажимать 2 раза

JACUK 29.12.2010 12:18

Ответ: А как?
 
Сам попробовать немогу, но может так DrawText(1,1,IntegerToString(15,44444):1:1) поексперментируйс :1:1, если это не ошибка. Или же Round(15,4444) или Trunc точно незнаю

Reks888 29.12.2010 13:07

Ответ: А как?
 
1. Переводим в текст
2. Берем всю целую часть + следующую цифру после запятой(например str=Copy(str,1,Instr(str,',')+1); где Copy копирует с первого символа до Instr(str,',')+1 которая вернет где находится запятая.
3. Переводим в число

baton4ik 29.12.2010 13:15

Ответ: А как?
 
Рекс, знаешь, что такое "Округление"? Твоим алгоритмом из 1,29 выйдет 1,2 , а не 1,3 , как должно быть. Так что стоит проверять все цифры дробной части (может быть и 1,4444444445 , которая округляется до 1,5)

12121 29.12.2010 15:20

Ответ: А как?
 
Умножаем на 10, округляем, делим на 10.
Для округления добавляем к числу 0.5 а потом присваиваем целочисленой переменной.

Sloth 29.12.2010 15:29

Ответ: А как?
 
не понял

Sloth 29.12.2010 15:32

Ответ: А как?
 
PHP код:

i:=FormAddString('Погрешность,% =' S); 

надо округлить до 0,1
значит: S*10, trunc/10 как то так?

Phantom 30.12.2010 09:09

Ответ: А как?
 
Цитата:

Сообщение от baton4ik (Сообщение 173595)
Рекс, знаешь, что такое "Округление"? Твоим алгоритмом из 1,29 выйдет 1,2 , а не 1,3 , как должно быть. Так что стоит проверять все цифры дробной части (может быть и 1,4444444445 , которая округляется до 1,5)

Ололо. Проверять нужно только одну следующую цифру после округляемого разряда, а не все.

Sloth 30.12.2010 13:05

Ответ: А как?
 
да не важно как округлять, мне считать со всеми дробными надо, а выводить только округленные

baton4ik 30.12.2010 13:13

Ответ: А как?
 
Цитата:

Сообщение от Phantom (Сообщение 173721)
Ололо. Проверять нужно только одну следующую цифру после округляемого разряда, а не все.

Ну да, я это и имел в виду :)

Sloth 02.01.2011 21:25

Ответ: А как?
 
ну так как сделать то?

GRAY_WOLF 02.01.2011 22:32

Ответ: А как?
 
Цитата:

Сообщение от Sloth (Сообщение 174190)
ну так как сделать то?

Так ты б сразу написал:
Люди добрые напишите мне пожалуйста прогу, а я вам за это не множко заплачу $$$...

JACUK 02.01.2011 23:43

Ответ: А как?
 
Всё чаще вижу на вопрос о помощи ответ $$$! Где же те кто поднимал новичков, где те кто помогал мне без $? Обидно человек просит помощи, а с него денег сбит хотят! Простите за оффтоп.

baton4ik 02.01.2011 23:44

Ответ: А как?
 
Ему помогли. А он, видимо не понял. Значит ему нужен готовый код, готовый код==деньги

Trazzy 03.01.2011 00:18

Ответ: А как?
 
GRAY_WOLF, baton4ik - минусую!
он же написал "ну так как сделать то?", а не "ну так сделайте мне!"..

cherepets 03.01.2011 00:41

Ответ: А как?
 
JACUK, но ведь речь идет о МП!
Хелп от odd'a шикарен и есть почти всё.

Потому, видимо, советы тут больше любят давать по алгоритмам и идеям, чем тупо по использованию функции copy.

JACUK 03.01.2011 02:43

Ответ: А как?
 
Ну несложно помоему и написать где и что курить!

baton4ik 03.01.2011 02:44

Ответ: А как?
 
Да ёлки, перечитай тред, ему всё уже сказали!

JACUK 03.01.2011 02:54

Ответ: А как?
 
Да вижу! Я не о том!

GRAY_WOLF 03.01.2011 09:22

Ответ: А как?
 
Я тоже не „гениальный” кодер, иначе бы давно перешел на С++. В свое время мне тоже с кодингом помогал odd, копался в чужих проектах...
А по существу ему в разных его темах и так почти всю программу написали всем „миром”...

JACUK 03.01.2011 11:28

Ответ: А как?
 
Если он действитеельно хочет прогать , то это ему помогло, а если нет, то толку от написаой всем "миром" программы мало.

GRAY_WOLF 03.01.2011 17:53

Ответ: А как?
 
Цитата:

Сообщение от JACUK (Сообщение 174252)
а если нет, то толку от написаой всем "миром" программы мало.

Ему всего лишь только для личного пользования...

Sloth 05.01.2011 18:58

Ответ: А как?
 
Я увидел только это:
Цитата:

1. Переводим в текст
2. Берем всю целую часть + следующую цифру после запятой(например str=Copy(str,1,Instr(str,',')+1); где Copy копирует с первого символа до Instr(str,',')+1 которая вернет где находится запятая.
3. Переводим в число
Спасибо рекс, но что это и как это использовать

P.S.
Цитата:

Хелп от odd'a шикарен и есть почти всё.
где его взять можно? :)

Reks888 05.01.2011 19:09

Ответ: А как?
 
Это псевдо-код функции которая принимает real число и возвращает real число обрезанное до десятых долей. Чтобы использовать это, прочитай это и попробуй написать тоже самое на нужном языке программирования.
Но я так понимаю, что без оформленного кода ты продолжишь задавать тупые вопросы?

DIMMON4IK 05.01.2011 19:54

Ответ: А как?
 
Та ну, здесь работы нету
PHP код:

if frac(realvar)>=0.5 then int:=(realvar*2 div 2)+else int:=realvar*2 div 2 

Можно вместо (realvar*2 div 2) использовать trunc(realvar), но тогда нужно ставить floating point

GRAY_WOLF 05.01.2011 20:16

Ответ: А как?
 
Цитата:

Сообщение от Sloth (Сообщение 174511)
где его взять можно? :)

Тута

Sloth 08.01.2011 20:46

Ответ: А как?
 
Спасибо :)

Sloth 08.01.2011 21:14

Ответ: А как?
 
мне не совсем это нужно...
мне надо только чтобы выводилось сокращенно, а считать надо все полностью.

12121 09.01.2011 04:09

Ответ: А как?
 
Ну так скопируй в другую переменную перед округлением !

Sloth 10.01.2011 20:06

Ответ: А как?
 
логично..
а на примере переменной "A"? равной допустим: 15.2134 :)

12121 11.01.2011 00:00

Ответ: А как?
 
Тебе здесь пример привели в 25 посте. Я тебе пример сделал. http://mobilepascal.ru/forum/4-471-1 если ничего не помогает то (цензура)

Halk-DS 11.01.2011 01:37

Ответ: А как?
 
Еще я вставлю своих 2 рубля...
Пробуй также только на своем язике:
A#=15.4444444444 ;-Пример округляемого числа.
B#=A#*10 ;-В итоге выйдет B#=154.444444444
B#=Floor#(B#);-Округлили до целых. Теперь выщло просто B#=154
A#=B# / 10 ;-Ответ "15,4" то что надо...

А теперь в одной строчке
A#=Floor#(A#*10)/10.0

Sloth 11.01.2011 16:38

Ответ: А как?
 
PHP код:

B#=Floor#(B#); 

а MP будет:
PHP код:

B=trunc(A); 

так чтоли? и еще читал что trunc работает неправильно с fixed point

12121 11.01.2011 16:58

Ответ: А как?
 
Да неправильно. Поэтому я обошелся без trunc.

Sloth 11.01.2011 17:10

Ответ: А как?
 
а floating point где ставиться? или как ты обошелся без trunc?

DIMMON4IK 11.01.2011 20:11

Ответ: А как?
 
посмотри мой пост на предыдущей странице

Sloth 12.01.2011 18:01

Ответ: А как?
 
PHP код:

if frac(realvar)>=0.5 then int:=(realvar*2 div 2)+else int:=realvar*2 div 2 

realvar - это типа переменная.
int - что это?

DIMMON4IK 13.01.2011 18:20

Ответ: А как?
 
1.Да, типа - real, число для округления
2.Тоже переменная, типа - integer, округленное число

Sloth 18.01.2011 20:12

Ответ: А как?
 
требует until


Часовой пояс GMT +4, время: 08:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot