Forumai

iOS Kaip naudojate sin, cos ir tan?

M

Ponas Pingvinas9

Originalus plakatas
2008 m. rugpjūčio 1 d
  • 2009 m. gegužės 13 d
Kaip „iPhone SDK“ naudojate sin, cos ir tan? Ir taip pat kaip jūs naudojate jų atvirkštinę vertę?

Dėkoju

SilentPanda

Moderatorius emeritas
2002 m. spalio 8 d
Bambukų miškas


  • 2009 m. gegužės 13 d
Spėju, kad naudotumėte tik C versijas cos, sin ir tan. M

Ponas Pingvinas9

Originalus plakatas
2008 m. rugpjūčio 1 d
  • 2009 m. gegužės 13 d
Ar galiu pateikti pavyzdį, prašau.

Dėkoju

„PhonyDeveloper“.

2008 m. rugsėjo 2 d
  • 2009 m. gegužės 13 d
Kodas: |_+_|
Ar yra kažkas daugiau?

Pabandykite įvesti tai terminale arba google

žmogaus nuodėmė M

Ponas Pingvinas9

Originalus plakatas
2008 m. rugpjūčio 1 d
  • 2009 m. gegužės 13 d
Bet kai darau „tan(1)“ naudojant „xcode“, man grąžinamas numeris 1556013989!?!? Bet 1 įdegis yra 0,017455... Ką aš darau ne taip?

Dėkoju R

Ronas C

2008 m. liepos 18 d
Čikagos sritis
  • 2009 m. gegužės 13 d
Kvepia tipo problema

MrPenguin9 pasakė: Bet kai aš darau 'tan(1)' naudojant xcode, man grąžinamas numeris 1556013989!?!? Bet 1 įdegis yra 0,017455... Ką aš darau ne taip?

Dėkoju

1556013989? Galbūt tai tiesiog spausdina slankiojo kablelio formato reikšmę kaip sveikąjį skaičių be tipo konvertavimo?

Iš kur gaunate šią tan() funkciją? matematika.h? Kokį tipą grąžina, pavyzdžiui, tan(? Ar reikia radianų ar laipsnių? Į kokį tipą saugote grąžinamąją vertę?

Patikrinau, ar man puslapyje nėra tan() ir ten rašoma:
Kodas: |_+_| Taigi... vienintelė funkcija, atitinkanti tą parašą, paima dvigubą (automatinį konvertavimą) ir grąžina dvigubą (taip pat automatinį konvertavimą) ir paima radianus.

Kaip vertinate vertę? Kaip atrodo tavo kodas?

REDAGUOTI: Aš ką tik patikrinau tan (1 radianas) reikšmę Calculator.app - ji sako: 1.557408. Taigi... kodėl, jūsų manymu, tai turėtų būti 0,017455? Tai įdegio vertė (1 laipsnis) M

Ponas Pingvinas9

Originalus plakatas
2008 m. rugpjūčio 1 d
  • 2009 m. gegužės 13 d
Štai mano kodas iš MainView.m Kodas: |_+_| (O, ir aš nežinojau, kad tan(x) yra radianais.) Ačiū, vaikinai, kad padėjote! G

Guiyon

2008 m. balandžio 19 d
Kembridžas, MA
  • 2009 m. gegužės 13 d
MrPenguin9 pasakė: -(void)awakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

Kyla jūsų problema: tan grąžina dvigubą, bet %d formato eilutė tikisi sveikojo skaičiaus. Pakeitus „%d“ į „%lf“, tai turėtų ištaisyti. Įvesdami „man 3 printf“ terminale gausite daug daugiau informacijos apie „Apple“ (ir daugelio kitų bibliotekų) naudojamas printf stiliaus formato eilutes; ieškokite dalies, kuri prasideda „Formato eilutė sudaryta iš nulio ar daugiau direktyvų“ R

Ronas C

2008 m. liepos 18 d
Čikagos sritis
  • 2009 m. gegužės 14 d
Greita pastaba apie automatinį konvertavimą ir slankiojo kablelio keistenybes...

Guiyon pasakė: Yra jūsų problema, tan grąžina dvigubą, bet %d formato eilutė tikisi sveikojo skaičiaus. Pakeitus „%d“ į „%lf“, tai turėtų būti išspręsta. Terminale įvedę „man 3 printf“ gausite daug daugiau informacijos apie „Apple“ (ir daugelio kitų bibliotekų) naudojamas printf stiliaus formato eilutes; ieškokite dalies, kuri prasideda „Formato eilutė sudaryta iš nulio ar daugiau direktyvų“

Šios „stebuklingo“ tipo konversijos nevyksta, nebent kompiliatorius žino, kad toks turėtų būti. Vienas atvejis, kai jis nežinos, yra tokiame kode kaip stringWithFormat: - jis tikrai nežino, kad turi būti konvertavimas, todėl jis linksmai perduodamas dvigubu būdu. Pradėję žaisti su slankiojo kablelio tipais, turite į tai atkreipti dėmesį.

Dar viena trumpa pastaba apie slankiojo kablelio tipus. Nerašykite tokio kodo: Kodas: |_+_| Problema su = ir slankiojo kablelio tipais yra ta, kad mažai tikėtina, kad jie bus lygūs. Net kažkas panašaus į: Kodas: |_+_| Jūsų lentoje šie skaičiai yra vienodi. Kompiuteryje jie nebūtinai turi būti. Keista, bet reikia prie to priprasti. M

Ponas Pingvinas9

Originalus plakatas
2008 m. rugpjūčio 1 d
  • 2009 m. gegužės 15 d
Pavyko.

Ačiū visiems už pagalbą!