Что нового

Определение процента от числа.

iDisketka

Новичок
Сообщения
20
Репутация
0
Привет всем...
Требуется небольшая помощь в определении процента от числа..

Задача такая
Имеится линия прогресса в которой 100 = 100%
имеется число например 4098...неизменное
и также имеется переменное число от1 до 4098
как правильно задать параметры для линии прогресса чтоб по мере убавления или прибавления переменного числа дохдила от 1% до 100%
Если я ввожу параметры прогресса напрямую переменное число..то прогресс переполняется после 100 и дальше не видно на каком уровне прогресс находится

Код:
$Progress = GUICtrlCreateProgress
 
$Fix = 4098 ; Неизменное число 
$NotFix = 1 To 4098 ;   число которое постоянно меняется
                               ; при достижении одинаковово значения с постоянным прогресс должен достичь 100%
GUICtrlSetData($Progress , ... )   ;



Дело в том что я никак не найду примеры перевода переменной в процент..
Заранее благодарен за помощь
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 320
iDisketka,
Попробуйте так:
Код:
$iNumMax = Random(3000, 5000, 1)
$iNumNow = 0
$iPersent = 0

For $i = 1 To $iNumMax
	$iNumNow += Random(10, 50, 1)
	If $iNumNow > $iNumMax Then
		$iNumNow = $iNumMax
	EndIf
	$iPersent = $iNumNow * 100 / $iNumMax
	$sMessage = StringFormat('%.2f% \n%d (%d)', $iPersent, $iNumNow, $iNumMax)
	ToolTip($sMessage, 0, 0)
	If $iPersent = 100 Then ExitLoop
	Sleep(Random(200, 500, 1))
Next
Sleep(3000)

Или так, с progress bar:
Код:
$iNumMax = Random(3000, 5000, 1)
$iNumNow = 0
$iPersent = 0
ProgressOn('Test Progress', 'Тестовый progress bar', '0%', Default, Default, 16)

For $i = 1 To $iNumMax
	$iNumNow += Random(10, 50, 1)
	If $iNumNow > $iNumMax Then
		$iNumNow = $iNumMax
	EndIf
	$iPersent = $iNumNow * 100 / $iNumMax
	$sMessage = StringFormat('%.2f%    %d kb (%d kb)', $iPersent, $iNumNow, $iNumMax)
	ProgressSet($iPersent, $sMessage)
	If $iPersent = 100 Then ExitLoop
	Sleep(Random(200, 500, 1))
Next
Sleep(3000)
ProgressOff()
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
madmasles хорошая работа :ok:
Но боюсь iDisketka просто интересовался, как число 4098 уложить в стопроцентную шкалу.
Код:
ProgressSet( $i/4098*100, Round( $i/4098*100 )  & " percent")

Хотя могу и ошибаться. :smile:
 
Автор
I

iDisketka

Новичок
Сообщения
20
Репутация
0
да именно то что нужно спасиба всем ) я просто небыл уверен есть ли в автоите функция деления на процент ....както совсем в голову не пришло через умножение решить :smile:
 
Верх