Автор | Сообщение |
|
| |
Пост N: 7696
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.09.22 17:30. Заголовок: Как узнать сколько знаков после запятой используется ?
Имеем цифирь например 10.12300 Как понять что используется 3 знака после запятой ? 10.00010 Как понять что используется 4 знака после запятой ? На ум приходит идея преобразовать в строку через Transform и затем дробную часть анализировать в цикле
|
|
|
Ответов - 3
[только новые]
|
|
|
| постоянный участник
|
Пост N: 4161
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.22 22:32. Заголовок: Dima Делаю вывод в ..
Dima Делаю вывод в тсб и т.д. для цены, кол-ва, суммы через ф-ю * ----------------------------------------------------------------------------------- * FUNCTION NumberNoNul( xv ) * ----------------------------------------------------------------------------------- * Local nn, cv, cc, nk If ISNUMERIC(xv) ; xv := hb_ntos(xv) EndIf nk := Len(xv) FOR nn := nk TO 1 STEP -1 cc := subs( xv, nn, 1 ) IF cc == "0" ; xv := left(xv, nn - 1) + " " ELSE ; EXIT ENDIF NEXT RETURN trim( xv ) т.е. oCol:bDecode := {|xv| NumberNoNul( xv ) } oCol:bEncode := {|xv| val( xv ) } oCol:cPicture := <нужный для колонки> для правки колонки для цены := '999999999.99999' - из настройки для кол-ва := '999999999.999' - из настройки для суммы := '999999999.99' - из настройки
|
|
|
|
| |
Пост N: 333
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.09.22 07:11. Заголовок: может что то типа: x..
может что то типа: x:=REMRIGHT(str(10.000100),"0") if "."$x ? len( substr( x, at(".",x)+1)) endif
|
|
|
|
| |
Пост N: 7697
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.09.22 15:03. Заголовок: Остановился на таком..
Остановился на таком варианте Func nfloat(n) local ret:=2 local c:=transform(n,"999999999.99999") local elem for each elem in c if elem:__enumindex()==13 if elem#"0" ret:=3 endif elseif elem:__enumindex()==14 if elem#"0" ret:=4 endif elseif elem:__enumindex()==15 if elem#"0" ret:=5 endif endif next return ret
|
|
|
|