簡體   English   中英

輸入的字符串格式不正確(從十進制到字符串)

[英]Input string was not in a correct format (Decimal to String)

我試圖將小數轉換為我過去成功完成的字符串,但是由於某種原因,它決定現在不工作。 我真的無法理解它,我已經在SQL Management Studio中將其設置為十進制,並使用linq來誘使它通過它,但是由於人類未知的某些奇怪原因,它認為要求日期時間。

碼:

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                tblTest t = new tblTest();

                t.tDecimal = Convert.ToDecimal(tbxDecimal.ToString());

                t.Add(t);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex.Message);
            }
        }

有人可以幫我嗎?

首先,您應該始終使用System.Decimal.TryParse()而不是Convert.ToDecimal()

其次,假設您使用某種形式的匈牙利符號,並且tbx在符號中表示“文本框”,那么您嘗試轉換的是文本框,而不是文本框中的文本。

代替

tbxDecimal.ToString() 

你需要

tbxDecimal.Text.ToString() 

最后,您是否設置了斷點以找出您要轉換的值實際上是什么? 它可能與您預期的不同。

可能是因為字符串使用點而不是逗號來代替,或者相反。

也許tbxDecimal.ToString()== string.Empty 如果字符串為空,則Decimal.Parse將引發異常

擴展Fredrik的答案:是否存在CultureInfo / Localization不匹配?

您為什么認為這是約會時間? 您可以發布實際的字符串嗎?

注意小數點分隔符-'。' 與“,”

暫無
暫無

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

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