C#中保留小数点后指定位数
double d=1.2356;
- string str=d.ToString("0.00"); //小数点后有几个0即保留几位小数。
- string str=d.ToString("#0.00");
- string str=d.ToString("f2"); //fn 保留n位,四舍五入,"F","f" 不区分大小写
- string str=String.Format("{0:F}", d);
- string str=String.Format("{0:N2}", d);
- double do=Math.Round(d, 2);
- decimal de = decimal.Round(decimal.Parse(d.ToString()), 2);
以上7种方法的结果都是1.24。
我用了float y = float.Parse(x.ToString("#0.00")),但比如6.50000000000这样做后却变成了6.5,我想让它变成6.50怎么做啊,最后我就是想得到两位小数
编程论坛 1 个网友回答:
float y=6.5 和 6.50内存计算时是一样的啊,你只是显示时将其格式化为 6.50即可.
编程论坛 2 个网友回答:
这个是显示的时候控制,不是赋值能解决的
double x = 6.50000000000;
float y = float.Parse(x.ToString());
Console.WrITeLine(y.ToString("F2"));
编程论坛 3 个网友回答:
我现在需要把这个转成6.50的string共四位发出去,接受方会摘出它来,所以我需要固定位数的,如果是6.5接收的时候就会摘不出来了
编程论坛 4 个网友回答:
你要是想在显示时看到的是6.50,那就用string yy = y.ToString("0.00");
计算时6.5和6.50是一样的
编程论坛 5 个网友回答:
C# code
string str = 6.500000.ToString("f2");//6.50
这样不就转为6.50格式了
编程论坛 6 个网友回答:
float y=6.5; 是浮点型的. 你如果需要通过tcp或RS232 之类的通讯,那也应该转成string型的传递啊,传递前格式化一下即可.
编程论坛 7 个网友回答:
float y =6.5f;
string s = string.Format("{0:0.00}",y);
float f = 12.123456f;
string s=f.ToString("0.00"); //呵呵 貌似不正规 还需要强行再转回去
Method 2
float f = 12.123456f;
string s=f.ToString("f2");
Method 3
float f = 12.123456f;
double s=Math.Round(f, 2); //这样搞成double了 呵呵
这样其实会四舍五入 而且float后面必须带字幕f 而声明double类型的数据则什么都不用带