[英]System.FormatException when trying to convert String to Double
[英]System.FormatException when parsing String to double
該代碼在Unity中運行良好。 現在,我在控制台項目中使用相同的代碼,並收到System.FormatException異常。
代碼是:
private double ConvertToNumber(string number)
{
return double.Parse(number, numberStyle);
}
調用時的參數為:
number = "3.138924e-002"
numberStyle = NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign
有人看到錯誤,還是知道可能是什么原因造成的?
拋出異常是因為無法使用您指定的格式和您自己的當前cultrue將提供的字符串轉換為數字。 除非您指定,否則后者是隱含的。
如果要從數據庫讀取此值,則應使用不變區域性(即,用於在用戶所需的任何位置(用戶界面除外)以一致的方式持久存儲數字和日期的區域性)。
您的代碼變為:
return double.Parse(number, numberStyle, System.Globalization.CultureInfo.InvariantCulture);
相反,如果您需要一種特定的文化,則需要傳遞正確的文化來代替不變的文化。
@ Selvin關於CultureInfo.InvariantCulture是正確的,將其添加為參數可以修復錯誤。
return double.Parse(number, numberStyle, CultureInfo.InvariantCulture);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.