111,129
社区成员
发帖
与我相关
我的任务
分享
static int GetPrecise(double b)
{
if (Math.Abs(b - (int)b) < 1e-10)
return -1;
int precise = 0;
double temp = Math.Abs(b - (int)b);
while((temp = temp*10) < 1 )
{
++precise;
}
return precise;
}
static void Main(string[] args)
{
double a = 1.1;
double b = 100.11;
int precisea = GetPrecise(a);
double result1 = ((int)(b*Math.Pow(10,precisea+1)))/(double)Math.Pow(10,precisea+1);
double result2 = b - result1;
Console.WriteLine(result1);
Console.WriteLine((float)result2);
}
double a = 1.11;
double b = 100.11;
double qian = 0.0;
double hou = 0.0;
string str = string.Empty;
int length = 0;
int aindex = a.ToString().IndexOf('.');
if (aindex == -1)
{
length = -1;
}
else
{
length = a.ToString().Length - aindex - 1;
}
int bindex = b.ToString().IndexOf('.');
if (bindex == -1)
{
qian = double.Parse(b.ToString());
}
else
{
if (bindex + length + 1 > b.ToString().Length)
{
qian = double.Parse(b.ToString());
}
else
{
qian = double.Parse(b.ToString().Substring(0, bindex + length + 1));
str = "0.0";
for (int i = 1; i < b.ToString().Length - b.ToString().IndexOf('.') - 1; i++)
{
str += "0";
}
hou = double.Parse((b - qian).ToString(str));
}
}
double a = 1.01;
double b = 100.11;
string strA = a.ToString();
string strB = string.Empty;
string strC = string.Empty;
strB = b.ToString().Substring(0, b.ToString().IndexOf('.') + (strA.Length - strA.IndexOf('.')));
strC = "0.0";
for (int i = 1; i < b.ToString().Length - b.ToString().IndexOf('.') -1; i++)
{
strC += "0";
}
strC = (b - double.Parse(strB)).ToString(strC);
double a = 1.1;
double b = 100.11;
String strA = a.ToString();
Int32 dotNumLenth = strA.IndexOf('.') == -1 ? 0 : strA.Split('.')[1].Length;
double result1 = Convert.ToDouble(b.ToString(String.Format(@"N{0}", dotNumLenth)));
double result2 = b - result1;
Console.WriteLine(result1);
Console.WriteLine(result2);
double a = 1.1;
double b = 100.11;
double ret1 = (long)b + (a-(long)a);
double ret2 = b - ret1;