1

所以我正在做一些計算的應用程序。它從txt中讀取一些數字,將它們轉換爲double,並在它們相乘之後給出結果。模擬器和Windows手機設備c上的不同結果#

可以說成txt擁有數10.5和2

string string1 = "10.5", string2 = "2"; 
double double1 = Convert.ToDouble(string1), double2=Convert.ToDouble(string2); 
double double3=double1*double2; 
textbox.text= double3.ToString(); 

結果我總是在模擬器得到的是21,而我的設備我得到210我試圖從手機重新安裝應用程序,重新啓動手機和電腦,我試了10次。我的手機仍然有不同的結果。我該怎麼辦?

PS:我想double.parse但還是一樣

+1

聽起來像一個文化問題?它是否可以讀取'.'作爲千位分隔符並忽略它? –

+0

所以你建議添加「,」而不是「」。 ? – user1924391

+0

但在仿真器上它工作得很好。爲什麼是這樣? – user1924391

回答

1

在保持手機和仿真器是在不同的語言環境中工作的基礎上,那麼這太問題回答了什麼是真正被要求how-to-convert-string-to-double-with-proper-cultureinfo

當然您現在將不得不將您的文本文件與更正的區域設置相匹配。

另見what-does-cultureinfo-invariantculture-mean

+0

謝謝。我會看看。 txt使用「。」作爲一個小數點,我希望手機無論它的工作地點是什麼,也可以用它作爲小數點。 – user1924391

+0

我嘗試了以下,它在手機和模擬器上都能正常工作。謝謝大家! double.Parse(Settings.appSettings [tcholcLog] .ToString(),System.Globalization.NumberStyles.Any,System.Globalization.NumberFormatInfo.InvariantInfo); – user1924391

相關問題