C# - Zmenšení čísla – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - Zmenšení čísla – .NET – Fórum – Programujte.comC# - Zmenšení čísla – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
BDS+3
Věrný člen
10. 8. 2016   #1
-
0
-

Zdravím, mám takový spíš asi matematický problém. Nejspíš vám to bude připadat jako banalita, ale já jsem na matematiku dutý jak bambus.

Nenapadá mě jak nějak jednoduše udělat tohle:

vstupem je hodnota int v rozmezí 10 až 999 999 999

já z této hodnoty potřebuji získat hodnotu double v rozsahu 10,0 až 99,999.. v podstatě posunout desetinnou čárku vždy za druhou číslici

příklad:

369258 na 36,9258

421 na 42,1

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
11. 8. 2016   #2
-
0
-

Zdravím, mne napadají hned 2 řešení.

1. Dělit číslo 10, dokud není menší jak 100:

double cislo = …;

while(cislo >= 100)
 cislo /= 10;

2. Přetypovat číslo na string, získat délku l, vydělit číslo 10^(l-2):

double cislo = …;
string cisloStr = cislo.ToString();
int length = cisloStr.Length;

cislo /= Math.Pow(10, length - 2);
Nahlásit jako SPAM
IP: 107.178.36.–
11. 8. 2016   #3
-
0
-

Zřejmě ti jde o to vložit des. čárku vždy za druhou cifru. V tom případě z toho udělej string a na index 2 vlož des. čárku metodou Insert. Pak konvertuj na float. Druhá možnost je výše zmíněné dělení deseti. První postup se mi zdá "programátorksy" jednodušší.

Pokud chceš převést 10 - 999 999 999 na 10 - 99.9 999 999 lineárně, zkus lineární funkci y = k*x + q. Máš dva body (x, y): (10, 10) a (999 999 999, 99.9 999 999). Po dosazení do základní rovnice funkce dostaneš soustavu dvou rovnic o dvou neznámých k a q. Řešením této soustavy obdržíš koeficienty k (strmost) a q (posun) které pak budeš používat pro převod čísla z definičního oboru (vstupní číslo) na číslo z oboru hodnot (výstupní číslo). Asi je to něco jiného než chceš.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Matěj Andrle+1
Grafoman
11. 8. 2016   #4
-
0
-

#1 BDS
Přes String.Format...

Nahlásit jako SPAM
IP: 82.208.37.–
BDS+3
Věrný člen
11. 8. 2016   #5
-
0
-

Díky moc, za reakce. Mě právě přišlo hloupé řešit to přes string, nebo přes nějakou smyčku. Říkal jsem si, že to přece musí jít nějak jednoduše matematicky vypočítat, nebo že je na to v C# už nějaká hotová metoda.

Takže na to půjdu asi přes string. 

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 58 hostů

Podobná vlákna

Zmenšení řetězce? — založil DjeFFeCt

Zmenšení obrázku — založil Matej Zabsky

Zmenšení výběru — založil xRoman

Zmenšení obrázku — založil Petr

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý