1

Тема: AHK: Преобразование числа в размер в мегабайтах

Добрый день. Есть такое значение, -

"size":8306546,

которое должно конвертироваться в "7,9 МБ". По какому принципу оно закодировано?

2 (изменено: Alectric, 2025-01-30 16:25:53)

Re: AHK: Преобразование числа в размер в мегабайтах

8306546/1024/1024=7,92173957824707

Таблица байтов.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3

Re: AHK: Преобразование числа в размер в мегабайтах

1srafel

;Для проверки: https://allcalc.ru/converter/megabytes-kilobytes

F2:: ; Для теста:
T=
Loop, 30{
 Random, R, 0, 1234567890123
 T .= R "   >>>   " FormatFileSize(R) "`n"
}
MsgBox, % T
Return


FormatFileSize(Size, R := 2){
 Static T := ["Байт", "Кб", "Мб", "Гб", "Тб"], TM := T.Count()
 I := 1
 while( (size >= 1024) And (I < TM))
  Size := (Size / 1024), I++
 Return ARound(Size, R) " " T[i]
}

ARound(D, R := 2){	; Число, Округление до N знаков после запятой.
 Return RTrim(RTrim(Round(D, R),"0"), ".")
}
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101