powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Точность вычисления
11 сообщений из 11, страница 1 из 1
Точность вычисления
    #33714295
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро всем. При умножении в 9-е 2-х чисел с 2-я знаками после запятой результат после запятой 3 знака, как сделать округление до 2-х, соответственно если больше 5 в большую сторону, иначе в меньшую(поле имеет форма 2 знака после запятой)
...
Рейтинг: 0 / 0
Точность вычисления
    #33714490
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RIGORДоброе утро всем. При умножении в 9-е 2-х чисел с 2-я знаками после запятой результат после запятой 3 знака, как сделать округление до 2-х, соответственно если больше 5 в большую сторону, иначе в меньшую(поле имеет форма 2 знака после запятой)
Функция ROUND(), см. HELP
Код: plaintext
?ROUND( 5 . 23 * 2 . 37 , 2 )
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Точность вычисления
    #35100058
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как можно получить 12.39?
Посколку 5.23*2.37=12.3951, т.е. не округлять, а просто остовить после запятой 2 значение
...
Рейтинг: 0 / 0
Точность вычисления
    #35100091
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
? STR(21.3456, 5, 10)
...
Рейтинг: 0 / 0
Точность вычисления
    #35100099
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
? STR(21.3456, 5, 10)
Получается- 21.35, надо 21,34
...
Рейтинг: 0 / 0
Точность вычисления
    #35100135
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lc = ALLTRIM(STR(21.3456, 10, 10))
lc =SUBSTR(lc, 1, AT(".", lc)+2)
? lc
...
Рейтинг: 0 / 0
Точность вычисления
    #35100286
s_gonch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RIGORДоброе утро всем. При умножении в 9-е 2-х чисел с 2-я знаками после запятой результат после запятой 3 знака, как сделать округление до 2-х, соответственно если больше 5 в большую сторону, иначе в меньшую(поле имеет форма 2 знака после запятой)
Код: plaintext
1.
2.
3.
x1= 5 . 23 
x2= 2 . 37 
?ROUND(x1*x2- 0 . 001 , 2 )
...
Рейтинг: 0 / 0
Точность вычисления
    #35100391
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
?ROUND( 12 . 395 - 5 * 10 ^- 3 , 2 )
...
Рейтинг: 0 / 0
Точность вычисления
    #35100837
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456А как можно получить 12.39?
Посколку 5.23*2.37=12.3951, т.е. не округлять, а просто остовить после запятой 2 значение


iCountR=2
iNumber=12.3951

?ROUND(INT(iNumber*(10**iCountR))/(10**iCountR),2)
...
Рейтинг: 0 / 0
Точность вычисления
    #35100844
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456А как можно получить 12.39?
Посколку 5.23*2.37=12.3951, т.е. не округлять, а просто остовить после запятой 2 значение
Код: plaintext
1.
2.
3.
? 5 . 23 * 2 . 37 
?INT( 5 . 23 * 2 . 37 * 100 )/ 100 
?FLOOR( 5 . 23 * 2 . 37 * 100 )/ 100 

Но это работает, если результирующее значение не больше 8 знаков, поскольку больше (после умножения на 100) не поддерживает тип Integer. Если знаков больше, то можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
lnValue =  5 . 23 * 2 . 37  			&& число
lcValue = TransForm(m.lnValue) 		&& то же число, но в символьном виде
lnPoint = AT(SET("POINT"), m.lcValue)	&& Позиция точки в числе
* Если разделителя нет, то надо взять все число
IF m.lnPoint =  0 
	m.lnPoint = LEN(m.lcValue)
ENDIF
* Результат
?VAL(LEFT(m.lcValue, m.lnPoint+ 2 ))

Т.е. просто находим символ разделитель целой и дробной части и отбрасываем все то, что после второго знака.
...
Рейтинг: 0 / 0
Точность вычисления
    #35100946
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут немного спорили на эту тему
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Точность вычисления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]