C# convert.todouble问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# convert.todouble问题相关的知识,希望对你有一定的参考价值。

代码段如下:
string a;
double b = Convert.ToDouble(a);
dailytotal = TimeSpan.FromHours(b) + TimeSpan.FromMinutes(b) + TimeSpan.FromSeconds(b);
大致是:a是从数据库中读出的一个值,把它转换成double型后再转换成timespan型
问题是:只要a的值为null,就会报FomatException错,如果a读出的为非空值,就能正常运行。
哪位高手解决过这个问题,麻烦给提个醒,感激不尽。

参考技术A double b = Convert.ToDouble(a??0);
a为空值就用0代替本回答被提问者和网友采纳
参考技术B if(a==null)

double b=0;

else

double b = Convert.ToDouble(a);
 
dailytotal = TimeSpan.FromHours(b) + TimeSpan.FromMinutes(b) + TimeSpan.FromSeconds(b);

参考技术C if(a==null)

double b=0;

else

double b = Convert.ToDouble(a);

dailytotal = TimeSpan.FromHours(b) + TimeSpan.FromMinutes(b) + TimeSpan.FromSeconds(b);
试一下
Over

C#,字符串“Number”转换为数值等于多少?为啥用Convert。ToDouble()无法转换???

参考技术A Number这个用Convert。ToDouble()是无法转换的,会报错,因为Number是字符串,不是有效的数字,是无法转换的。你要是想把字符串转换成数字是不行的,只能转换成字节码这类东西。这个可以自己写,因为可以找找函数。 参考技术B "Number"是字符串类型的 是无法强制转换为数字类型的 只有是数字类型的字符串才可以 比如 "123.123" 转为123.123追问

???
double balance;
balance=Convert.ToDouble(Console.ReadLine());
要是输入Number呢??

追答

报错要报错的
QQ:
double balance;
if (double.TryParse(Console.ReadLine(),out balance))

Console.WriteLine("这是个数字");

else

Console.WriteLine("请输入数字");
goto QQ;

追问

那为什么输入其他的纯字母单词安然无恙???输入Number就报错???

追答

输入纯单个字母的话 就会当做字符处理 转成ascil嘛值

参考技术C 你把字符串转换成数字干嘛? 把number转换成23422142 有什么意义呢
如果你想转换成asc码
string txt="number";
string newtxt="";
foreach(char c in txt)

newtxt+=Convert.ToString((int)c);

newtxt可以把字符串中的每个字符,注意是每个字符换成ASC码.
参考技术D ms-help://MS.MSDNQTR.v90.chs/fxref_system/html/78cd8fd9-f619-0f3d-e0ad-3f97273d03fc.htm
看看这里,MSDN的说法...
将数字的指定 String 表示形式转换为等效的双精度浮点数。
数字的指定 String 表示形式
数字追问

网址不行,进不去,好像不对!

第5个回答  2011-08-01 字符串的内容是数字才可以啊,“Number”相当于什么数字?追问

???

追答

不理解?假设字符串a="12345",那么很容易转换成数字,当然就=12345,可是如果字符串a="abcde",那怎么转换成数字?

以上是关于C# convert.todouble问题的主要内容,如果未能解决你的问题,请参考以下文章

C#中(double)str;与Convert.ToDouble(str);有什么区别

c#中取整,向上取,向下取

C#,字符串“Number”转换为数值等于多少?为啥用Convert。ToDouble()无法转换???

c#中 Double num1 = Convert.ToDouble(this.textBox1.Text.ToString())是啥意思,里面的()是啥意思

C#中得到两个数百分比 (转)

c#中 Double num1 = Convert.ToDouble(this.textBox1.Text.ToString())是啥意思,里面的()是啥意思