这样了 double i=0.555555; int j=i*1000; int j=(j%10)/10
错了,应该是这样 double i=0.555555; int j=i*1000; int j=(j%10)/100 应该是除以100
告诉你思路设x为double的小数然后x-x除以0.01的余数就是你要的不要四舍五入的两位小数其中textbox1为输入的小数值 double x = double.Parse(TextBox1.Text.Trim()); double y = x % 0.01; double z = x - y; TextBox2.Text = y.ToString(); TextBox3.Text = z.ToString();
double d1 = 23.43674454; s = d1.ToString(); int index = s.IndexOf('.'); if (index < s.Length - 2) { s = s.Substring(0, index + 3); } d1 = Convert.ToDouble(s);d1的值是23.43
string str1=String.Format("{0:F}",dbdata);//默认为保留两位
2、
double dbdata=0.335333;
string str1=String.Format("{0:F}",dbdata);//默认为保留两位
3、
float i=0.333333;
int j=(int)(i * 100);
i = j/100;
4、
decimal.Round(decimal.Parse("0.3333333"),2)
5、
private System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();float test=0.333333f;
nfi.NumberDecimalDigits=2;
string result=test.ToString("N", nfi);
6、
string result= String.Format("{0:N2}",Convert.ToDecimal("0.333333").ToString());
引用通告地址: http://tmsoft.lsxy.com/trackback.php?tbID=138&extra=8d6457
MessageBox.Show(dbdata.ToString("0.00"));
#region 修约间隔的数据处理
private double DataTreat(double interval)
{
double treat = this.d_IntialData;
int units;
int tens;
units = (int)(treat*10/interval);
tens = units/10;
int end = units%10;
if(end>5)
{
tens += 1;
}
else if(end == 5)
{
if(tens%2 == 1)
{
tens+=1;
}
}
treat = tens*interval;
return treat;
}
#endregion四舍六入,五单双
nfi.NumberDecimalDigits=2;
Math.Floor(Convert.ToDecimal(resultVal)).ToString("N", nfi)Dim nfi As NumberFormatInfo = New CultureInfo("en-US", False).NumberFormat
nfi.NumberDecimalDigits = 2
resultVal = Math.Floor(Convert.ToDecimal(resultVal)).ToString("N", nfi)
Math.Round(Decimal, MidpointRounding) 重载,MidpointRounding在两个数字之间时如何舍入的规范,规范MidpointRounding中它有2个成员,一个是ToEven还有个是AwayFromZero。
ToEven就是银行家算法吧,也就是四舍六入五成双或者是四舍六入五凑偶..取偶..等等
AwayFromZero这个就是四舍五入了
2、减去0.005,在进行四舍五入处理
double d = 0.23421313212 ;
string n = d.Tostring();
n = n.Substring(0,(n.IndexOf('.')==-1?n.Length:n.IndexOf('.')+3));
d = Convert.ToDouble(n);
double d = 0.23421313212 ;
string n = d.Tostring();
n = n.Substring(0,(n.IndexOf('.')==-1?n.Length:n.IndexOf('.')+3));
d = Convert.ToDouble(n);
LZ是要不四舍五入的。将数组toString然后截取。。OK。。
手头没编译器。。没法给你试
从数据库传回来的能有效限制小数位数.
但自己却怎么也创建不了这种decimal.....
double i=0.555555;
int j=i*1000;
int j=(j%10)/10
错了,应该是这样
double i=0.555555;
int j=i*1000;
int j=(j%10)/100
应该是除以100
double y = x % 0.01;
double z = x - y; TextBox2.Text = y.ToString();
TextBox3.Text = z.ToString();
double doubleNUm2 = 1.026666;
doubleNUm2 = Convert.ToDouble(FormateDouble(doubleNUm2, 2)) =1.02; private string FormateDouble(double doubleNum, int lenght)
{
string retDouble = string.Empty; string strNum = doubleNum.ToString(); string[] strArr = new string[2]; strArr = strNum.Split('.'); if (strArr.Length == 2)
{
if (strArr[1].Length > 0)
{
if (strArr[1].Length > lenght)
{
retDouble = strArr[0].ToString() + "." + strArr[1].ToString().Substring(0, lenght);
}
else
{
string plugZore = strArr[1].ToString();
for (int i = 0; i < lenght - strArr[1].Length; i++)
{
plugZore += "0";
} retDouble = strArr[0].ToString() + "." + plugZore;
}
}
}
else
{
retDouble = strArr[0].ToString();
} return retDouble;
}
string temp=test.toString();
temp.subString(temp.indexOf('.'),2);
但贴子已结了,口头谢谢了。
s = d1.ToString();
int index = s.IndexOf('.');
if (index < s.Length - 2)
{
s = s.Substring(0, index + 3);
} d1 = Convert.ToDouble(s);d1的值是23.43
decimal value= getValue.ToString("f2");