#pragma rtGlobals=1 // Use modern global access method. //*** niceNum2Str ***// // makes formatted string from the value and error... function/s niceNum2Str(y,e) variable y; // value variable e; // error string sFormat,sAns; variable sy,se; se=floor(ln(e)/ln(10)); sy=floor(ln(abs(y))/ln(10)); if (e >= 2) // [error >= 2] if ((e/10^se >= 1)%&(e/10^se < 2)) // when leading number of error is "1" sFormat="%"+num2str(sy+1)+".0f(%"+num2str(se+1)+".0f)"; sprintf sAns,sFormat,10^(se-1)*round(y/10^(se-1)),10^(se-1)*round(e/10^(se-1)); else // when leading number of error is "2" ... "9" sFormat="%"+num2str(sy+1)+".0f(%"+num2str(se+1)+".0f)"; sprintf sAns,sFormat,10^se*round(y/10^se),10^se*round(e/10^se); endif; elseif (e >= 1) // [1 <= error < 2] sFormat="%"+num2str(sy+3)+".1f(%"+num2str(se+2)+".0f)"; sprintf sAns,sFormat,10^(se-1)*round(y/10^(se-1)),e*10; else // [error < 1] if (abs(y)>=1) // [value >= 1] if ((e/10^se >= 1)%&(e/10^se < 2)) // when leading number of error is "1" sFormat="%"+num2str(sy+abs(se)+2)+"."+num2str(abs(se)+1)+"f(%2.0f)"; sprintf sAns,sFormat,y,e/10^(se-1); else // when leading number of error is "2" ... "9" sFormat="%"+num2str(sy+abs(se)+1)+"."+num2str(abs(se))+"f(%1.0f)"; sprintf sAns,sFormat,y,e/10^se; endif; else // [value < 1] if ((e/10^se >= 1)%&(e/10^se < 2)) // when leading number of error is "1" sFormat="%"+num2str(abs(se)+3)+"."+num2str(abs(se)+1)+"f(%2.0f)"; sprintf sAns,sFormat,y,e/10^(se-1); else // when leading number of error is "2" ... "9" sFormat="%"+num2str(abs(se)+2)+"."+num2str(abs(se))+"f(%1.0f)"; sprintf sAns,sFormat,y,e/10^se; endif; endif; endif; return sAns; end;