有了下面的代碼,std :: to_string保證在轉換浮點值時包含小數點嗎?
int main() {
for(;;) {
float d;
cin >> d;
cout << std::to_string(d) << endl;
}
}
to_string
似乎總是返回包含小數點後面六位數字的字符串。這種行爲是否有保證(不包括nan
和infinity
)?
根據cplusplus.com,「根據需要寫入儘可能多的數字來表示整數部分,後跟小數點字符和六位十進制數字」。
我想補充以下幾招:http://stackoverflow.com/questions/16605967/set-precision-of-stdto-string-when-converting-floating-point-values?rq=1 – user3159253 2015-03-25 05:09:17
這是毫無疑問,規則是有效的......但爲什麼有關「sprintf」的「替代實現」的評論爲'to_string'提供了保證? – 2015-03-25 05:12:34
@BenVoigt,*替代實現*與答案無關。我會刪除它。 – 2015-03-25 05:22:53