在UNIX中使用sprintf()
將double
值轉換爲字符串時,我遇到了一個特定問題。double值的sprintf格式化
比如我有兩個值:
double a = 0.009984354523452;
double b = 0.01;
雖然轉換,我使用:
sprintf(somestringvar, "Double value : %.15f \n", a);
sprintf(diffstringvar, "Double value : %.15f \n", b);
轉換爲字符串。
我的問題是'a',值正確打印,但'b'的值,0的尾部追加。請給我提供任何常用的方法來表示'a'和'b'爲準確的值。
我會使用std :: ostringstream這種事情。 – Robinson 2012-04-26 06:21:12
一般來說,不要使用'sprintf()',因爲它會導致緩衝區溢出。改爲使用'snprintf()',或者Microsoft在Windows上提供的'_s'「安全」版本之一。附:歡迎來到堆棧溢出! – 2012-04-26 06:21:41
嗨,感謝您的早期迴應。 ostringstream不是完全精確的。值僅打印爲0.009976。我可以使用snprintf(),但問題是在正確打印值時。 – sandy 2012-04-26 07:01:24