Zaokrąglanie D-Link - czy to jest naprawdę roud?

0

Niektóre wnęki pamięci D-Link zachowują się w bardzo dziwny sposób ze znacznikami czasu (NTFS).

Oto krótka próbka z niektórych przeprowadzonych przeze mnie eksperymentów:

08:00:01.562 rounds to 08:00:01.000
08:00:01.633 rounds to 08:00:02.000
08:00:02.556 rounds to 08:00:03.000

Jestem naprawdę zaskoczony, jak 01.562zaokrągla się w dół, a 01.633zaokrągla w górę ...

Czy rozumiesz o co tu chodzi?

PS: Oto dodatkowy stolik, jeśli to pomaga.

Input           Output          Nearest second  FAT rounding
08:00:00.000    08:00:00.000    08:00:00.000    08:00:00.000
08:00:00.071    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.142    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.213    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.284    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.355    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.426    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.497    08:00:00.000    08:00:00.000    08:00:02.000
08:00:00.568    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.639    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.710    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.781    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.852    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.923    08:00:01.000    08:00:01.000    08:00:02.000
08:00:00.994    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.065    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.136    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.207    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.278    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.349    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.420    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.491    08:00:01.000    08:00:01.000    08:00:02.000
08:00:01.562    08:00:01.000    08:00:02.000    08:00:02.000
08:00:01.633    08:00:02.000    08:00:02.000    08:00:02.000
08:00:01.704    08:00:02.000    08:00:02.000    08:00:02.000
08:00:01.775    08:00:02.000    08:00:02.000    08:00:02.000
08:00:01.846    08:00:02.000    08:00:02.000    08:00:02.000
08:00:01.917    08:00:02.000    08:00:02.000    08:00:02.000
08:00:01.988    08:00:02.000    08:00:02.000    08:00:02.000
08:00:02.059    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.130    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.201    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.272    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.343    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.414    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.485    08:00:02.000    08:00:02.000    08:00:04.000
08:00:02.556    08:00:03.000    08:00:03.000    08:00:04.000
08:00:02.627    08:00:03.000    08:00:03.000    08:00:04.000
08:00:02.698    08:00:03.000    08:00:03.000    08:00:04.000
08:00:02.769    08:00:03.000    08:00:03.000    08:00:04.000
Łaskawy
źródło
1
Być może niedokładność zmiennoprzecinkowa?
JAB

Odpowiedzi:

1

Może to być po prostu patrzenie na .5 i zaokrąglanie parzyste / nieparzyste. To pomaga zachować odrobinę rozsądku przy dodawaniu.

Powiedzmy, że masz 1,5 i 2,5. Jeśli dodasz je bezpośrednio, otrzymasz 1,5 + 2,5 => 4,0. Ale ... jeśli zaokrąglisz z normalnym „> = .5 idzie w górę”, dostaniesz 2.0 + 3.0 i 5.0.

Zmieńmy trochę regułę. Jeśli zaokrąglasz n.mdo liczby całkowitej, możesz mieć regułę dla .5, która obejmuje n. Bo n.5jeśli njest parzysty, zaokrąglasz się jak zwykle. Jeśli njest nieparzysty, zaokrąglasz w dół. Tak więc dla 1,5 zaokrąglasz w dół do 1. Dla 2,5 zaokrąglasz w górę (jak normalnie) do 3. 1,0 + 3,0 = 4,0, tak jak można się spodziewać.

Rich Homolka
źródło
Nie pasuje to jednak do zastosowanego wzorca, ponieważ 1,562 zaokrągla do 1 przypadku D-link.
Clément
0

To wydaje się być błędem, naprawionym w najnowszych obudowach DLink NAS.

Łaskawy
źródło