MrPenguin9
Áp phích gốc- Ngày 1 tháng 8 năm 2008
- Ngày 13 tháng 5 năm 2009
Cảm ơn
SilentPanda
Người điều hành danh dự
- 8 tháng 10, 2002
- Rừng tre
- Ngày 13 tháng 5 năm 2009
MrPenguin9
Áp phích gốc- Ngày 1 tháng 8 năm 2008
- Ngày 13 tháng 5 năm 2009
Cảm ơn
PhoneyDeveloper
- Ngày 2 tháng 9 năm 2008
- Ngày 13 tháng 5 năm 2009
x = sin(y);
Còn gì nữa không?
Hãy thử nhập mã này vào thiết bị đầu cuối hoặc google nó
con người tội lỗi NS
MrPenguin9
Áp phích gốc- Ngày 1 tháng 8 năm 2008
- Ngày 13 tháng 5 năm 2009
Cảm ơn NS
Ron C
- Ngày 18 tháng 7 năm 2008
- Chicago-khu vực
- Ngày 13 tháng 5 năm 2009
MrPenguin9 đã nói: Nhưng khi tôi thực hiện 'tan (1)' trong xcode, nó trả lại cho tôi 1556013989!?!? Nhưng tan của 1 là 0,017455 ... Tôi đang làm gì sai?
Cảm ơn
1556013989? Nó có thể chỉ đang in một giá trị được định dạng dấu phẩy động dưới dạng số nguyên mà không có chuyển đổi kiểu?
Bạn nhận được hàm tan () này từ bao giờ? toán học.h? Ví dụ, loại tan () trả về là gì? Nó mất radian hay độ? Bạn đang lưu trữ giá trị trả về vào kiểu nào?
Tôi đã kiểm tra trang người đàn ông cho tan () và nó nói:
Mã:
#include double tan(double x); long double tanl(long double x); float tanf(float x); DESCRIPTION The tan() function computes the tangent of x (measured in radians).
Vì vậy, .... hàm duy nhất phù hợp với chữ ký đó nhận một kép (chuyển đổi tự động) và trả về một kép (cũng chuyển đổi tự động) và lấy radian. Bạn đang xem giá trị như thế nào? Mã của bạn trông như thế nào?
CHỈNH SỬA: Tôi vừa kiểm tra giá trị của tan (1 radian) trong Calculator.app - nó cho biết: 1.557408. Vậy ... tại sao bạn nghĩ nó phải là 0,017455? Đó là giá trị của tan (1 ĐỘ) NS
MrPenguin9
Áp phích gốc- Ngày 1 tháng 8 năm 2008
- Ngày 13 tháng 5 năm 2009
#import 'MainView.h' @implementation MainView -(void)awakeFromNib { Text.text = [NSString stringWithFormat:@'%d', tan(1)]; } @end
(Ồ, và tôi không biết rằng tan (x) tính bằng radian.) Cảm ơn các bạn đã giúp đỡ! NS Guiyon
- Ngày 19 tháng 4 năm 2008
- Cambridge, MA
- Ngày 13 tháng 5 năm 2009
MrPenguin9 đã nói: - (void )akenFromNib {
Text.text = [NSString stringWithFormat '% d', tan (1)];
}
Có vấn đề của bạn, tan trả về một đôi nhưng chuỗi định dạng% d yêu cầu một số nguyên. Thay đổi '% d' thành '% lf' sẽ khắc phục điều đó. Gõ 'man 3 printf' ở đầu cuối sẽ cung cấp cho bạn nhiều thông tin hơn về các chuỗi định dạng kiểu printf mà Apple (và rất nhiều thư viện khác) sử dụng; tìm phần bắt đầu bằng 'Chuỗi định dạng bao gồm không hoặc nhiều chỉ thị' NS
Ron C
- Ngày 18 tháng 7 năm 2008
- Chicago-khu vực
- Ngày 14 tháng 5 năm 2009
Guiyon cho biết: Có vấn đề của bạn, tan trả về giá trị gấp đôi nhưng chuỗi định dạng% d lại yêu cầu một số nguyên. Thay đổi '% d' thành '% lf' sẽ khắc phục điều đó. Gõ 'man 3 printf' tại terminal sẽ cung cấp cho bạn nhiều thông tin hơn về các chuỗi định dạng kiểu printf mà Apple (và rất nhiều thư viện khác) sử dụng; tìm phần bắt đầu bằng 'Chuỗi định dạng bao gồm không hoặc nhiều chỉ thị'
Những chuyển đổi kiểu 'ma thuật' này không xảy ra trừ khi trình biên dịch biết rằng phải có một. Một trường hợp mà nó sẽ không biết là trong mã như stringWithFormat: - nó không thực sự biết rằng phải có một chuyển đổi, vì vậy nó vui vẻ chuyển dọc theo một đoạn kép. Một khi bạn bắt đầu chơi với các loại dấu phẩy động, bạn cần chú ý đến điều đó.
Một lưu ý ngắn gọn khác về các loại dấu phẩy động. Đừng viết mã như: Mã:
double a,b; ... if (a == b) { ...
Vấn đề với các kiểu dấu = và dấu phẩy động là chúng rất khó có thể bằng nhau. Thậm chí một cái gì đó như: Mã: float a,b,c,prod1,prod2; ... // compute values for a, b, and c prod1 = a*b*c; prod2 = c*b*a; if (prod1 == prod2) { ...
Trên bảng trắng của bạn, những con số này giống nhau. Bên trong máy tính, chúng không nhất thiết phải như vậy. Thật kỳ lạ, nhưng bạn cần phải làm quen với nó. NS MrPenguin9
Áp phích gốc- Ngày 1 tháng 8 năm 2008
- Ngày 15 tháng 5 năm 2009
Cảm ơn tất cả các bạn đã giúp tôi!
Bài ViếT Phổ BiếN