Khi tôi gỡ lỗi phần mềm của tôi trong VS C++ bằng cách bước mã tôi nhận thấy rằng một số tính toán phao hiển thị như một số với một dấu chấm, ví dụ:Dấu chấm ở cuối phao có cho thấy thiếu chính xác không?
1232432.
Một hoạt động dẫn đến kết quả này này:
float result = pow(10, a * 0.1f)/b
trong đó một số âm lớn khoảng -50 đến -100 và b thường là khoảng 1. Tôi đọc một số bài viết về sự cố với độ chính xác khi nói đến dấu phẩy động. Câu hỏi của tôi chỉ là dấu chấm là một cách Visual-Studio cho tôi biết rằng độ chính xác rất thấp trên con số này, tức là trong kết quả biến. Nếu không, nó có nghĩa là gì?
Điều này xuất hiện tại nơi làm việc hôm nay và tôi nhớ rằng có vấn đề với số lượng lớn hơn nên điều này xảy ra mỗi lần (và "điều này" tôi có nghĩa là dấu chấm). Nhưng tôi nhớ rằng nó đã xảy ra khi có bảy chữ số trong số đó. Ở đây họ wright rằng độ chính xác của nổi bảy chữ số:
C++ Float Division and Precision
này có thể là điều và Visual Studio nói với tôi điều này bằng cách đặt một dấu chấm cuối cùng?
TÔI NGHINK TÔI NÓ NÓ! Nó nói "Phần định trị được chỉ định như một chuỗi các chữ số theo sau một dấu chấm". Mantissa nghĩa là gì? Điều này có thể khác trên PC và khi chạy mã trên DSP không? Bởi vì vấn đề là tôi nhận được kết quả khác nhau và điều duy nhất có vẻ kỳ lạ đối với tôi là điều thời kỳ này, vì tôi không biết nó có ý nghĩa gì.
http://msdn.microsoft.com/en-us/library/tfh6f0w2(v=vs.71).aspx
FYI '1.' và' .1' là literals đôi hợp lệ trong C++ (ít nhất là gcc) – Joe
tôi nhận được rằng .1 là một float/double hợp lệ nhưng tại sao nó không in cùng một dấu. cho mỗi phao? Nếu một đôi là số không nó in 0,0000000 nhưng không bao giờ 0. chỉ. Tại sao nó dấu chấm chỉ một vài lần, nó phải là một cái gì đó đặc biệt xảy ra đối với một số lượng lớn. –
@ThomasJohansson: Bạn sẽ cần phải thực hiện điều đó với nhóm VS tôi giả sử. Vấn đề là nó hoàn toàn không có gì để làm với độ chính xác của phao. Ở đây, bạn nên biết [công cụ này] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html). –