我有三組數字,一個測量(在0-1範圍內)兩個錯誤(正數和負數,這些數字應該一致地顯示爲顯着數數字向上取整,相當於第一個非零數字中的任何一個數字正確格式化有錯誤的數字(C++)
如果測量結果爲1(即只有錯誤中的數字需要考慮),該要求會被跳過。 :
0.95637 (+0.00123, -0.02935) --> 0.96 +0.00 -0.03
1.00000 (+0.0, -0.0979) --> 1.0 +0.0 -0.1 (note had to truncate due to -ve error rounding up at first significant digit)
現在,獲取第一個非零數字很容易通過採取log10(num),但我有一個愚蠢的時刻試圖以乾淨的方式進行剝離和修圓工作。
所有數據類型都是雙打的,選擇的語言是C++。歡迎任何想法!
是否有您的實現不使用庫調用的約束? – 2009-06-05 22:13:47
這並不完全清楚。 Ehy在第一行有效數字的位數是2,第二位是1?換句話說,爲什麼在第一行+0.00123被格式化爲+0.00,但在第二行+0.0被格式化爲+0.0? – 2009-06-05 22:28:48