2017-07-11 101 views
-4

我寫了下面的代碼將字符串轉換爲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」的值如何,答案始終與輸入值相同。

注意:我確實已經閱讀了與同一主題相關的所有問題,但沒有一個給出瞭解決我的代碼的線索。

+3

*「...答案總是與輸入值相同。」*看起來,如果您試圖在類型之間轉換值,這正是您想要的。你期望什麼樣的行爲?現在的行爲又有什麼不同? –

+0

此代碼[確切地說我期望它](http://coliru.stacked-crooked.com/a/07233ced3688e06b)所以我不知道你的問題是什麼... – Borgleader

+0

我猜當我輸入像2這樣的數字,它應該給我答案2.00 –

回答

0

答案不一樣。 字符串「13.45」和浮點值13.45將以相同的方式顯示。如果您想確認結果是否存在浮點值,則嘗試打印結果+ 1而不是結果,它將表現得像一個正常的浮點數。

+0

對不起,我沒有得到。你能解釋一下嗎? –

+0

哦,好的。將嘗試 –

+0

謝謝您的方式。 –

相關問題