View Issue Details

IDProjectCategoryView StatusLast Update
0000670Far ManagerDrive Menupublic2008-12-26 12:35
Reporterujifgc Assigned Toalexy  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version2.0 
Summary0000670: Округление размеров дисков и файлов
DescriptionВ панели выбора дисков заметил, что диски размером, например, 15.999 Гб показываются как 15.99 Гб, а не положенные 16.00 Гб. После раскопок выяснил, что при переводе из размера файла/диска в форматированную строку не учитывается (отбрасывается) третий знак после запятой. Сделал исправление, чтобы знак не отбрасывался, а округлялся.
Additional InformationIndex: 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);
     }
TagsNo tags attached.
Build665

Activities

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);
     }
far.diff (648 bytes)   

alexy

2008-12-18 12:11

administrator   bugnote:0002196

А почем *100 а не *100.0 как было?

ujifgc

2008-12-18 14:51

reporter   bugnote:0002197

Случайно стёр, когда экспериментировал.

alexy

2008-12-18 14:52

administrator   bugnote:0002198

Давай полное имя для CONTRIBUTORS

alexy

2008-12-18 23:03

administrator   bugnote:0002206

665

Issue History

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