業務代碼如下
row的話大概有400行資料,用double取值進行相加,不涉及到小數精準等問題,相加到130萬左右往后就相加不上去了
請教大佬這是什么問題,是資料量太多,還是需要換一個數值型別,迷茫了
double total = 0;
while( (nodes=xmlfile.SelectSingleNode("row"+i))!=null)
{
int j=1;
System.Collections.ArrayList colList = new System.Collections.ArrayList();
foreach(XmlNode xmlnodes in nodes.ChildNodes)
{
colList.Add(xmlnodes.InnerText);
if (j == 10)
{
total += Convert.ToDouble(xmlnodes.InnerText.Split('(')[0].ToString());
}
j++;
}
i++
uj5u.com熱心網友回復:
麻煩把代碼整理下?uj5u.com熱心網友回復:
看看是不是資料溢位了,如果資料過大,就把資料拆分成兩塊,一個表示前幾位,另外個表示后幾位;另外看看i定義的數值范圍
uj5u.com熱心網友回復:
好中意CTRL K D啊uj5u.com熱心網友回復:
double 型別資料范圍很大,在可見的現實環境中肯定沒有問題,除非你的資料不正常,以下 double 資料加減運算不能得到正確結果:double.NaN
double.NegativeInfinity
double.PositiveInfinity
uj5u.com熱心網友回復:
double total = 0;
while( (nodes=xmlfile.SelectSingleNode("row"+i))!=null)
{
int j=1;
System.Collections.ArrayList colList = new System.Collections.ArrayList();
foreach(XmlNode xmlnodes in nodes.ChildNodes)
{
colList.Add(xmlnodes.InnerText);
if (j == 10)
{
total+= Convert.ToDouble(xmlnodes.InnerText.Split('(')[0].ToString());
}
j++;
}
i++
uj5u.com熱心網友回復:
加不上去,是什么意思?例外?
uj5u.com熱心網友回復:
你確認下是加不上去了?還是你的Convert.ToDouble出來的數有問題?
uj5u.com熱心網友回復:
樓主用錯了,我們都使用DECIMAL。一定解決。你是自找麻煩。個人感覺轉載請註明出處,本文鏈接:https://www.uj5u.com/net/9881.html
標籤:C#
