Odečet procent   otázka

ASP.NET WebForms

Prosím o radu ...

Z databáze načítám cenu (datový typ v databázi smallmoney) a potřebuji zjistit cenu bez 5% a bez 10%

Používám toto:

Dim Price1 As Decimal

Price1 = Price1 - ((Price1 / 100) * 5)

Výsledek je ale následovný:

Pokud cena Price1 z databáze = 94,00

Vrací mi cenu se slevou 84,54 místo (84,55)

Můžeete prosím poradit, kde je chyba popř. jak by měl vypadat vzorec pro výpočet přímo s procenty.

Děkuji za odpovědi

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Chcete naznačit, že Vámi uvedený kód vrací při vstupu Price1=94 výsledek 84,54 a vy chcete 84,55?

Pak tomu ale nerozumím.

Jednak by, na straně jedné, nebylo od věci trochu se zamyslet nad matematikou, protože pak byste jistě velice rychle zjistil, že jsou úplně totožné zápisy:

Price1 = Price1 - ((Price1 / 100) * 5)
Price1 = Price1 - Price1 / 100 * 5  'viz priorita operátorů
Price1 = 0.95 * Price1              ' jednoduchá matematická úprava

Ale ať už ten vztak napíšete jak chcete, vždy by Vám to mělo jako výsledek při vstupu 94 vyhodit hodnotu 89,3 (při 10% slevě pak 84,6).

Můžete, prosím, napsat, jak jste došel k těm svým hodnotám?

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Omlouvám se,

při hodnotě

Price1 = 94,00

se vypočítá Price2

Price2 = Price1 - sleva

slea = (hodnota z databáze - aktuálně 5,00)

Zobrazí správně hodnotu Price2 = 89,00

a z těchto cen se počítá procentuální sleva (dle vzorce),

která vrací ty honoty

Price1 se slevou = 89,30 Kč (správně)

Price2 se slevou = 84,54 Kč

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hoďte sem kód, kterým to počítáte. Na druhém desetinném místě by chyb zaokrouhlování vznikat neměla, ale kdoví, čím to je.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback