小数点后打印数字

时间:2012-07-31 15:48:09

标签: c# decimal-point

如何在小数点后打印float / double变量的数字? 例如,对于435.5644,它将输出5644

3 个答案:

答案 0 :(得分:4)

尝试

fraction = value - (long) value;

或:

fraction = value - Math.Floor(value);

答案 1 :(得分:1)

您可以尝试以下操作:

  double d = 435.5644;
  int n = (int)d;

  var v = d - n;

  string s = string.Format("{0:#.0000}", v);

  var result = s.Substring(1);

结果:5644

答案 2 :(得分:-1)

编辑:参考另一个问题(http://stackoverflow.com/questions/4512306/get-decimal-part-of-a-number-in-javascript) 您可以执行以下操作:

double d = 435.5644;
float f = 435.5644f;
Console.WriteLine(Math.Round(d % 1, 4) * 10000);
Console.WriteLine(Math.Round(f % 1, 4) * 10000);

这将为您提供您要查找的整数部分。

最好是这样做,因为Aghilas Yakoub回答,但是,这里是另一个使用字符串处理的选项。假设所有金额都有小数,而小数分隔符是一个点(。),您只需要获得索引1.

double d = 435.5644;
Console.WriteLine(d.ToString().Split('.')[1]);

float f = 435.5644f;
Console.WriteLine(f.ToString().Split('.')[1]);

否则,您可能会收到Unhandled Exception:System.IndexOutOfRangeException。