View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000670 | Far Manager | Drive Menu | public | 2008-12-18 08:09 | 2008-12-26 12:35 |
Reporter | ujifgc | Assigned To | alexy | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 2.0 | ||||
Summary | 0000670: Округление размеров дисков и файлов | ||||
Description | В панели выбора дисков заметил, что диски размером, например, 15.999 Гб показываются как 15.99 Гб, а не положенные 16.00 Гб. После раскопок выяснил, что при переводе из размера файла/диска в форматированную строку не учитывается (отбрасывается) третий знак после запятой. Сделал исправление, чтобы знак не отбрасывался, а округлялся. | ||||
Additional Information | Index: unicode_far/strmix.cpp =================================================================== --- unicode_far/strmix.cpp (revision 2295) +++ unicode_far/strmix.cpp (working copy) @@ -1059,7 +1059,8 @@ { Sz = (OldSize=Sz) / Divider64F2; OldSize = (OldSize % Divider64F2) / (Divider64F2 / Divider64F2_mul); - DWORD Decimal = (DWORD)((double)(DWORD)OldSize/(double)Divider*100.0); + DWORD Decimal = (DWORD)(0.5f+(double)(DWORD)OldSize/(double)Divider*100); + if (Decimal >= 100) { Decimal -= 100; Sz++; } strStr.Format (L"%d.%02d", (DWORD)Sz,Decimal); FormatNumber(strStr,strStr,2); } | ||||
Tags | No tags attached. | ||||
Build | 665 | ||||
2008-12-18 08:10
|
far.diff (648 bytes)
Index: unicode_far/strmix.cpp =================================================================== --- unicode_far/strmix.cpp (revision 2295) +++ unicode_far/strmix.cpp (working copy) @@ -1059,7 +1059,8 @@ { Sz = (OldSize=Sz) / Divider64F2; OldSize = (OldSize % Divider64F2) / (Divider64F2 / Divider64F2_mul); - DWORD Decimal = (DWORD)((double)(DWORD)OldSize/(double)Divider*100.0); + DWORD Decimal = (DWORD)(0.5f+(double)(DWORD)OldSize/(double)Divider*100); + if (Decimal >= 100) { Decimal -= 100; Sz++; } strStr.Format (L"%d.%02d", (DWORD)Sz,Decimal); FormatNumber(strStr,strStr,2); } |
|
А почем *100 а не *100.0 как было? |
|
Случайно стёр, когда экспериментировал. |
|
Давай полное имя для CONTRIBUTORS |
|
665 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-12-18 08:09 | ujifgc | New Issue | |
2008-12-18 08:09 | ujifgc | Status | new => assigned |
2008-12-18 08:09 | ujifgc | Assigned To | => alexy |
2008-12-18 08:10 | ujifgc | File Added: far.diff | |
2008-12-18 12:11 | alexy | Note Added: 0002196 | |
2008-12-18 14:51 | ujifgc | Note Added: 0002197 | |
2008-12-18 14:52 | alexy | Note Added: 0002198 | |
2008-12-18 23:03 | alexy | Note Added: 0002206 | |
2008-12-18 23:03 | alexy | Status | assigned => feedback |
2008-12-26 12:35 | alexy | Build | => 665 |
2008-12-26 12:35 | alexy | Status | feedback => closed |
2008-12-26 12:35 | alexy | Resolution | open => fixed |
2008-12-26 12:35 | alexy | Fixed in Version | => 2.0 |