- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
x * x
如何通过将其存储在“tự động
变量”中来更改?我认为它应该仍然是相同的,并且我的测试表明类型、大小和值显然都Đúng相同的。
但即使 x * x == (xx = x * x)
也是错误的。什么鬼?
(注意:我知道 IEEE 754 以及 float 和 double 的工作原理以及它们的常见问题,但这一个让我感到困惑。)
#include
#include
#include
#include
sử dụng không gian tên std;
int chính() {
auto x = sqrt(11);
auto xx = x * x;
cout << boolalpha << fixed << setprecision(130);
cout << " xx == 11 " << ( xx == 11 ) << endl;
cout << "x * x == 11 " << (x * x == 11 ) << endl;
cout << "x * x == xx " << (x * x == xx ) << endl;
cout << "x * x == (xx = x * x) " << (x * x == (xx = x * x)) << endl;
cout << "x * x == x * x " << (x * x == x * x ) << endl;
cout << "types " << typeid(xx).name() << " " << typeid(x * x).name() << endl;
cout << "sizeofs " << sizeof(xx) << " " << sizeof(x * x) << endl;
cout << "xx " << xx << endl;
cout << "x * x " << x * x << endl;
}
这是输出:
xx == 11 true
x * x == 11 false
x * x == xx false
x * x == (xx = x * x) false
x * x == x * x true
types d d
sizeofs 8 8
xx 11.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
x * x 11.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
用这个编译:
C:\Stefan\code\leetcode>g++ test4.cpp -static-libstdc++ -std=c++11 -o a.exe
C:\Stefan\code\leetcode>g++ --version
g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
câu trả lời hay nhất
这是 double 常见的不精确。你没有提到你的硬件,但在 x86(32 位英特尔)上,计算期间使用的临时文件是 10 字节长的 double 。 x * x
将是其中之一,而 xx = x * x
在加载回 FPU 进行比较之前将存储为 8 字节 double 。
如果打开优化或构建 64 位可执行文件,您可能会得到不同的结果。
关于c++ - x*x != x*x 在自动变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35447947/
Sự cố và bản ghi khắc phục sự cố--Kết nối Java RMI bị từ chối lưu trữ: xxxx.... Khi học JavaRMI, tôi gặp phải các lý do sự cố sau:
Tôi đang thử nghiệm loại Rank-N và cố gắng nhập xx . Nhưng tôi thấy rằng cả hai chức năng đều có thể được nhập theo cùng một cách, điều này khá không trực quan. f :: (forall a b. a -> b) -> cfx = xxg ::
Câu hỏi này đã có câu trả lời: Làm cách nào để so sánh hai Chuỗi phiên bản trong Java? (31 câu trả lời) Đã đóng 8 năm trước. Có ai biết cách so sánh hai chuỗi phiên bản trong Java không
Câu hỏi này đã có câu trả lời: Các toán tử tăng sau (i++) và tăng trước (++i) hoạt động như thế nào trong Java?
Sau đây là đầu ra của lệnh netstat với các tùy chọn -n và -r, trong đó trường đích hiển thị địa chỉ được nén (127.1/16). Tôi muốn biết liệu có cách nào hoặc tùy chọn nào để lệnh netstat hiển thị toàn bộ IP mục tiêu (127.1.1.1) không.
Mình biết cách chứng minh: (- ∀ x, px) → (∃ x, - px) Cách chứng minh là: định lý : (- ∀ x, px) → (∃ x, - px) := bắt đầu giới thiệu n
Làm cách nào x * x có thể được thay đổi bằng cách lưu trữ nó trong "biến tự động"? Tôi nghĩ nó vẫn giống nhau và thử nghiệm của tôi cho thấy rằng loại, kích thước và giá trị rõ ràng là giống nhau. Nhưng ngay cả x * x == (xx = x * x) cũng sai. Cái gì
Giả sử, chúng ta diễn đạt nó như thế này: someIQueryable.Where(x => x.SomeBoolProperty) someIQueryable.Where(x => !x.SomeBoolProper
Tôi có một chuỗi 1234X5678 và tôi sử dụng biểu thức chính quy này để khớp với mẫu .X|..X|X. Tôi nhận được 34X. Câu hỏi đặt ra là tại sao tôi không nhận được 4X hoặc X5? Tại sao biểu thức chính quy chọn thực thi mẫu thứ hai? Câu trả lời hay nhất ở đây
Một người bạn của tôi đã gặp phải vấn đề này trong một cuộc phỏng vấn. Tìm giá trị của x làm cho hàm trả về đúng. function f(x) { return (x++ !== x) && (x++ === x);
Câu hỏi này đã có câu trả lời ở đây: đã đóng cửa 10 năm trước. Có thể trùng lặp: Làm việc với foo không dễ dàng hơn khi nó được biểu diễn b
Tôi mới sử dụng Android và đang thực hành phát triển ứng dụng nhắm mục tiêu phiên bản 2.2 và tôi cần trợ giúp để hiểu cách mở rộng ứng dụng của mình sang các phiên bản khác, cụ thể là 1.x, 2.3.x, 3.x và 4.xx và một số cho độ phân giải màn hình
Tại sao trường hợp 1 cho chúng ta:error: TypeError: x is unexpected on line... //case 1 var x.push(x);
Mã đầu tiên: # CASE 01 def test1(x): x += x print xl = [100] test1(l) print l CASE01 đầu ra: [100, 100
Tôi đang cố gắng hoàn thiện những tính toán lớn của mình. Nếu tôi có một hàm di chuyển tất cả các mục sang bên phải 'i' 2 khoảng trắng, thì tôi có một công thức trông như thế này: (n -1) + (n - 2) + (n - 3) ... (n - n) lần lặp đầu tiên tôi phải
Với một chuỗi IP (như xxxx/x), tôi sẽ tính toán phạm vi của IP như thế nào. Trường hợp phổ biến nhất có thể là 198.162.1.1/24 nhưng nó có thể là bất kỳ thứ gì, vì luật pháp cho phép mọi thứ. Tôi muốn mang 198.162.1.1/
Trong nỗ lực viết mã Javascript sạch khi mới bắt đầu, gần đây tôi đang đọc bài viết này thì tình cờ thấy đoạn này, về các không gian tên trong JavaScript: The code at the ve
Tôi đang viết một tập lệnh mà tôi muốn tránh làm ô nhiễm phần còn lại của DOM, đó sẽ là tập lệnh của bên thứ 3 thu thập một số dữ liệu phân tích cơ bản về khách truy cập. Tôi thường tạo một "không gian tên" giả bằng cách sử dụng: var x = x || {};
Tôi đã thử chạy bộ test_container_services.py nhưng gặp phải sự cố sau: docker.errors.APIError: 500 Server Error: Internal Server Error ("b'{" message
Có những tình huống nào mà hai câu lệnh if này sẽ tạo ra các kết quả khác nhau không? if(x as X != null) { // Làm gì đó } if(x is X) { // Làm gì đó } ed.
Tôi là một lập trình viên xuất sắc, rất giỏi!