C#中保留小数点后指定位数

C#中保留小数点后指定位数

double d=1.2356;

  1. string str=d.ToString("0.00"); //小数点后有几个0即保留几位小数。
  2. string str=d.ToString("#0.00");
  3. string str=d.ToString("f2"); //fn 保留n位,四舍五入,"F","f" 不区分大小写
  4. string str=String.Format("{0:F}", d);
  5. string str=String.Format("{0:N2}", d);
  6. double do=Math.Round(d, 2);
  7. 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类型的数据则什么都不用带