我寫了下面的代碼將字符串轉換爲double。爲什麼我無法將字符串轉換爲雙精度?
#include<iostream>
#include<stdlib.h>
using namespace std;
main()
{
char a[] = "13.45";
double result; //output variable must be of 'double' type
cout<<"Value before conversion is "<<a<<endl;
result = atof(a);
cout<<"Value after conversion is "<<result<<endl;
}
問題是無論我聲明「a」的值如何,答案始終與輸入值相同。
注意:我確實已經閱讀了與同一主題相關的所有問題,但沒有一個給出瞭解決我的代碼的線索。
*「...答案總是與輸入值相同。」*看起來,如果您試圖在類型之間轉換值,這正是您想要的。你期望什麼樣的行爲?現在的行爲又有什麼不同? –
此代碼[確切地說我期望它](http://coliru.stacked-crooked.com/a/07233ced3688e06b)所以我不知道你的問題是什麼... – Borgleader
我猜當我輸入像2這樣的數字,它應該給我答案2.00 –