簡體   English   中英

將字符串轉換為 double 返回完整值,而不是分數 C#

[英]Converting string to double returns with the full value, instead of the fraction C#

我在 MAC (2021) 上使用 Visual Studio,當我嘗試從字符串轉換為 double 時,例如 0,3,它返回 3。問題是 Macbook 格式,因為它無法將“,”識別為分隔符對於分數,而是使用“。” 我如何將其更改為“,”或讓 MAC 接受兩者?

string number = "0.3";
double fraction = double.Parse(number);
//this returns 0.3
string number = "0,3";
double fraction = double.Parse(number);
//this returns 3 -> expected to be 0.3 aswell

您可以告訴double.Parse您要使用哪個小數點分隔符:

double fraction = double.Parse(number); // uses the "current culture"    
double fraction = double.Parse(number, CultureInfo.InvariantCulture); // assumes "." as the decimal separator
double fraction = double.Parse(number, CultureInfo.GetCultureInfo("de-DE")); // assumes "," as the decimal separator

但是,對於您的用例,在程序開始時設置當前文化可能更容易:

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("hu-HU");

我在一所中學教書,所以我要給很多編程項目打分,我真的不想為了在我的筆記本電腦上運行而編輯學生代碼

如果您的學生代碼假定double.Parse(number)始終使用特定的小數點分隔符,則您學生的代碼包含所謂的本地化錯誤 如果它適合您的教學大綱,這可能是一個很好的學習機會,可以教他們本地化問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM