- gkaroly blogja
- A hozzászóláshoz be kell jelentkezni
- 2103 megtekintés
Hozzászólások
Nem derül ki a szabály a példádból. Az elsőnél lefelé kerekítettél, a harmadiknál felfelé.
500-al oszthatónak kell lennie az eredménynek?
Ha igen akkor egy lehetséges megoldás:
500-al osztod az eredményt, egész részét veszed, majd szorzod 500-al.
Ha felfelé akarsz kerekíteni, akkor a szorzás előtt adj hozzá 1-et.
- A hozzászóláshoz be kell jelentkezni
Annyi lenne a lényeg, hogy ha 000 és 500 közé esik a szám, akkor visszakerekítek egészre, ha 500 és 700 közé, akkor 500-ra kerekítek, és ha 700 felé, akkor a következő 1000-esre kerekítek. pl. 10865 -> 11000.
--
Charlos
-- http://www.uvegcsont.hu -- / -- http://ganyikaroly.net --
Jól csak a szívével lát az ember. Ami igazán érdekes, az a szemnek láthatatlan. - by A Kisherceg
- A hozzászóláshoz be kell jelentkezni
De miért nem 750-250 között 000, 250 és 750 között 500?
--
"Dude, you can't take something off the Internet.. that's like trying to take pee out of a swimming pool."
- A hozzászóláshoz be kell jelentkezni
=IF(MOD(A1;1000)<=700;INT(A1/500)*500;ROUNDUP(A1/500;0)*500)
Az elfuserált kerekítési határok miatt ennél egyszerűbbet nem valószínű hogy fogsz találni.
- A hozzászóláshoz be kell jelentkezni
ááááá, miért kell az életet túlbonyolítani, nem csak neked másoknak sem tűnik fel hogy.. izé egy általános iskolai feladat, de belegondolva tényleg még érettségin sem merném feltenni :/
na jó, akkor hogy gondolkodik a józan paraszt:
- a kerekítés és az egész rész igen-igen hasonló, ha ez nem túűnik fel valakinek, miért hupozik :)
- csak egy picit el van tolva, azaz gondolkodni kell hogy mégis megoldjuk
megoldás: akkor toljuk el mi is: round(x) = int( x + 0.5 )
eredeti feladat:
fel kell hogy tűnjön, csak a tizedesvesszőt valami gonosz manó leradírozta, mivel ugyanoda kell visszatennünk, semmi probléma:
tizedesvesszőt vissza: y = x/1000
kerekítünk: int(y+0.5)
tizedesvesszőt újra el: 1000*int(x/1000+0.5)
innen már rá kell jönni hogy kell megoldani :)
(más: ha jól rémlik van tetszőleges kerekítés, de lehet hogy csak msofficból rémlik)
ps: na egy kis segítség, mivel már te is rájöttél: nem 1000-el kell szorozni-osztani
- A hozzászóláshoz be kell jelentkezni
Szerintem a megoldásod a második példára nem jó. Ami nem meglepő, mert nem veszi figyelembe a 700-as határt.
Ha segíteni akarsz, írd le a konkrét megoldás. Pl.
=x*(int(.../....
- A hozzászóláshoz be kell jelentkezni
ne jó ezt benéztem, ráfogom szombat hajnalra, meg hogy reflexből jön elő hogy máskor értelmesnek látszó ember sem érti mi a különbség a kerekítés és egészrész közt, meg ha nem 10 hatvánnyal kell osztani...
de ha nem 0.5 a határ hanem 0.7 akkor sem kell bonyolítani:
valahova kell egy +0.3
- A hozzászóláshoz be kell jelentkezni
Konkrétan hova? A probléma az, hogy nem szimmetrikus a tartomány.
501-700 és 701-500
- A hozzászóláshoz be kell jelentkezni
Én a ROUNDUP fgv-t szoktam használni. általában így: ROUNDUP(ár*áfa*árrés;-2)
- A hozzászóláshoz be kell jelentkezni
+1
KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey
- A hozzászóláshoz be kell jelentkezni
ROUNDUP-al:
=IF(MOD(A1;1000)<=700;INT(A1/500)*500;ROUNDUP(A1;-2))
,de ez nem jó a kerekítési határokhoz, tehát nem jó megfejtés!
- A hozzászóláshoz be kell jelentkezni
nem egyszerűbb?
500*int(x/500+0.5)
- A hozzászóláshoz be kell jelentkezni
És ez a 10487-re nem 10000-t, hanem 10500-at ad.
- A hozzászóláshoz be kell jelentkezni
fentebb írom, benéztem, de határozottan fenntartom, nem egy bonyolult probléma :)
- A hozzászóláshoz be kell jelentkezni
Akkor adj egy egyszerű megoldást :-)
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
majd ha kimászok writeonlyból, beírom a te megoldásod, de addig még kell 2 bögre kv :)
- A hozzászóláshoz be kell jelentkezni
Józan paraszti ésszel erre jutottam:
=IF(A1>499;(IF(MOD(A1;1000)<500;0;IF(MOD(A1;1000)>700;1000;500)))+(A1-MOD(A1;1000));500)
Egy matematikus vagy egy programozó biztos nem így csinálná. :)
:)
- A hozzászóláshoz be kell jelentkezni
Hát ennél az én módzserem egyszerűbb, és matematikus sem vagyok :-)
Biztos ami biztos, mégegyszer:
=IF(MOD(A1;1000)<=700;INT(A1/500)*500;ROUNDUP(A1/500;0)*500)
- A hozzászóláshoz be kell jelentkezni
:)
- A hozzászóláshoz be kell jelentkezni