purebasic.info

PureBasic forum
Текущее время: Ср июн 20, 2018 7:58 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Пн окт 12, 2009 10:32 pm 
Не в сети
доцент

Зарегистрирован: Пн июл 20, 2009 10:51 am
Сообщений: 43
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Понадобилось выводить числа в инженерном или научном формате, а готовой функции не нашел.
Пришлось изобретать свою функцию. Вот пример кода и его проверки:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Procedure.s StrFexp(x.f)
  y.f=Abs(x)
  If y<>0.0: exp.l=Int(Log10(y)):
    If exp<0: exp=exp-1: EndIf
    y=y*|!REG3XP3!>Pow(10,-exp)
  Else: exp=0: y=0
  EndIf
  If x<0: y=-y: EndIf
  ProcedureReturn StrF(y)+"e"+Str(exp)  
EndProcedure
; --------- проверка ----------------------
x.f=2e-10
Debug x
Debug StrFexp(x)
x.f=2e10
Debug x
Debug StrFexp(x)
x.f=2e-20
Debug x
Debug StrFexp(x)
x.f=2e20
Debug x
Debug StrFexp(x)



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: fil@tov и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB