我是C#编程的新手,我需要你的帮助。我有一个值为" 12:45:00"我想将它转换为带小数点后两位的十进制数。
答案 0 :(得分:1)
虽然您实际上可以使用DateTime
结构,但是,因为您的string
不包含date
信息,我认为最简单的方法是改为使用string.Split
。
string[] strs = "12:45:00".Split(':'); //will give you 12, 45, and 00
double val = Convert.ToDouble(strs[0]) + Convert.ToDouble(strs[1]) / 60 + Convert.ToDouble(strs[2]) / 3600;
然后用两个十进制值打印它,只需执行:
val.ToString("F2"); //you will get 12.75
或者,要获得12.45
,请执行以下操作:
double val = Convert.ToDouble(strs[0]) + Convert.ToDouble(strs[1]) / 100; //note 100 here - second doesn't matter here
答案 1 :(得分:1)
如果您打算将小时,分钟和(可选)秒的持续时间转换为小时,则可以这样做:
double answer = TimeSpan.Parse("12:45:00", CultureInfo.InvariantCulture).TotalHours;
Console.WriteLine(answer); // Prints 12.75
这是您可以使用的值和小时费率来计算总收入。
注意:将12:45(hh:mm)转换为12.45是不正确的,因为12:45是12.75小时,而不是12.45小时。