Shrinking/Splitting十进制数
Shrinking/Splitting decimal number
我一直在使用 C# 中的 DateTime
,并提出了一些有用的代码来计算日期之间的天数。
我使用以下代码计算出日期之间有多少天,然后我将天数除以 7 计算出有多少周。
DateTime SDate = new DateTime(2014, 12, 31);
DateTime EDate = new DateTime(2015, 5, 18);
double resDays = SDate.Subtract(EDate.Date).TotalDays;
double Weeks = resDays / 7;
string resWeeks = Weeks.ToString();
但是Weeks.ToString()
的结果returns是一个很长的十进制数
-19.5714285714286
我用 resWeeks = resWeeks.Replace("-","");
删除了 -
我用这段代码将冗长的数字分成两部分
string s = Weeks.ToString("0.00", CultureInfo.InvariantCulture);
string[] parts = s.Split('.');
int i1 = int.Parse(parts[0]);
int i2 = int.Parse(parts[1]);
labelWeeks.Text = i1.ToString() + i2.ToString();
但是,i2.ToString()
还是returns57,我当然希望这个只有5,我怎么能这样呢?
我希望"-19.5714285714286"
成为"19 5"
提前致谢。
只需使用 0.0
作为格式字符串而不是 0.00
。
作为实数的格式字符串,点前的数字零描述左填充,点后的零数描述您想要的小数位数。要小数点后一位就说吧
第一点: 我认为你必须尝试 EDate.Subtract(SDate.Date)
而不是 SDate.Subtract(EDate.Date)
所以结果是正值并且不需要 .Replace("-","")
DateTime SDate = new DateTime(2014, 12, 31);
DateTime EDate = new DateTime(2015, 5, 18);
double resDays = EDate.Subtract(SDate.Date).TotalDays;
double Weeks = resDays / 7;
第二点:结果不是整数,因为138天在19-20周之间。您可以像这样四舍五入结果:
string resWeeks = Math.Round(Weeks).ToString(); //resWeeks = 20
或者如果您正在寻找 19 5
string resWeeks = Weeks.ToString("0.0").Replace('.',' ');
我一直在使用 C# 中的 DateTime
,并提出了一些有用的代码来计算日期之间的天数。
我使用以下代码计算出日期之间有多少天,然后我将天数除以 7 计算出有多少周。
DateTime SDate = new DateTime(2014, 12, 31);
DateTime EDate = new DateTime(2015, 5, 18);
double resDays = SDate.Subtract(EDate.Date).TotalDays;
double Weeks = resDays / 7;
string resWeeks = Weeks.ToString();
但是Weeks.ToString()
的结果returns是一个很长的十进制数
-19.5714285714286
我用 resWeeks = resWeeks.Replace("-","");
删除了 -
我用这段代码将冗长的数字分成两部分
string s = Weeks.ToString("0.00", CultureInfo.InvariantCulture);
string[] parts = s.Split('.');
int i1 = int.Parse(parts[0]);
int i2 = int.Parse(parts[1]);
labelWeeks.Text = i1.ToString() + i2.ToString();
但是,i2.ToString()
还是returns57,我当然希望这个只有5,我怎么能这样呢?
我希望"-19.5714285714286"
成为"19 5"
提前致谢。
只需使用 0.0
作为格式字符串而不是 0.00
。
作为实数的格式字符串,点前的数字零描述左填充,点后的零数描述您想要的小数位数。要小数点后一位就说吧
第一点: 我认为你必须尝试 EDate.Subtract(SDate.Date)
而不是 SDate.Subtract(EDate.Date)
所以结果是正值并且不需要 .Replace("-","")
DateTime SDate = new DateTime(2014, 12, 31);
DateTime EDate = new DateTime(2015, 5, 18);
double resDays = EDate.Subtract(SDate.Date).TotalDays;
double Weeks = resDays / 7;
第二点:结果不是整数,因为138天在19-20周之间。您可以像这样四舍五入结果:
string resWeeks = Math.Round(Weeks).ToString(); //resWeeks = 20
或者如果您正在寻找 19 5
string resWeeks = Weeks.ToString("0.0").Replace('.',' ');