[英]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.