我有三组数字,一个测量(在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