Forum » Programiranje » [c#] operator ^ in decimal
[c#] operator ^ in decimal
japol ::
Imam kodo:
ampak mi podčrta vrstico: b = 14.34m * (a ^ 6); natančneje a^6, dela če uporabim (a*a*a*a*a*a)
Poizkusil sem že:
b = 14.34m * System.Math.Pow(a, 5);
javi napako, da mora biti double.
Se pravi: kako potenciram decimal?
Kako to popravim? Nočem narest nove clase, ki bi nasledila decimal.
decimal a = System.Decimal.Parse(textBox1.Text); decimal b; b = 14.34m * (a ^ 6); textBox2.Text = b.ToString();
ampak mi podčrta vrstico: b = 14.34m * (a ^ 6); natančneje a^6, dela če uporabim (a*a*a*a*a*a)
Poizkusil sem že:
b = 14.34m * System.Math.Pow(a, 5);
javi napako, da mora biti double.
Se pravi: kako potenciram decimal?
Kako to popravim? Nočem narest nove clase, ki bi nasledila decimal.
- spremenil: japol ()
japol ::
To poznam, namenoma sem tako napisal, ker drugje je znak mišljen za potenco. Zato sem vpisal tudi .Math.Pow...
Uprašanje je, kako potenciram decimalno število?
Uprašanje je, kako potenciram decimalno število?
Mesko89 ::
Zakaj ne preprosto samo namesto decimal double uporabljaš?
Drugače pa ena zanimiva rešitev, ki sem jo najdel na Internetu:
d^c = log(d^c) = c * log(d)
log (d^c) = c * log(d)
d^c = e^(c * log(d))
Torej:
vir: http://stackoverflow.com/questions/4291...
Drugače pa ena zanimiva rešitev, ki sem jo najdel na Internetu:
d^c = log(d^c) = c * log(d)
log (d^c) = c * log(d)
d^c = e^(c * log(d))
Torej:
public static double MyPow(double a, double b) { return Math.Exp(b * Math.Log(a)); }
vir: http://stackoverflow.com/questions/4291...
darkolord ::
Zakaj ne preprosto samo namesto decimal double uporabljaš?Mogoče rabi večjo natančnost?
Mesko89 ::
double je 64 bitno z dvojno natančnostjo. Za navadno računanje je to popolnoma zadosti (če izvzamemo nekaj redkih algoritmov). Ampak glede na to kar vidim zgoraj ne vidim razloga, da bi uporabil decimal. :)
japol ::
V resnici je:
b = -68,450*a^5 + 503,115*a^4 - 1.515,077*a^3 + 2.372,939*a^2 - 1.944,844*a + 709,098
samo se mi ni zdelo smiselno celotno enačbo pisati.
b = -68,450*a^5 + 503,115*a^4 - 1.515,077*a^3 + 2.372,939*a^2 - 1.944,844*a + 709,098
samo se mi ni zdelo smiselno celotno enačbo pisati.
technolog ::
pow() ti ne deluje na decimal tipu... Zakaj pa ne uporabiš a*a*a*a*a? Če deluje, zakaj pa ne? Problem je edino, ker ne moreš dinamično prilagajat števila faktorjev.
Če rabiš večjo natančnost, se mi zdi da obstaja tudi double long, ki je še bolj natančen kot double.
Če rabiš večjo natančnost, se mi zdi da obstaja tudi double long, ki je še bolj natančen kot double.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | float vs decimalOddelek: Programiranje | 6303 (4436) | Looooooka |
» | Java[kotne funkcije]Oddelek: Šola | 683 (639) | Mesar |
» | VB.NET evklidov algoritem razširjenOddelek: Programiranje | 902 (749) | Yacked2 |
» | c# classOddelek: Programiranje | 2278 (1872) | japol |
» | BigInteger-->BigDecimalOddelek: Programiranje | 956 (852) | FlashM |