在C#中将指数双值转换为int

时间:2015-06-17 04:45:33

标签: c#

我想获得该点之前的唯一部分,但我无法通过每种方法获得它。我的价值是1.734565456765434E-06。我想将它转换为1

2 个答案:

答案 0 :(得分:2)

您似乎正在尝试get the most significant digit of a number

var n = 1.734565456765434E-06;
var exp = Math.Floor(Math.Log10(n)); // -6
var result = Math.Floor(n / Math.Pow(10, exp)); // 1

这可以概括为:

var n = 1.734565456765434E-06;
var nDigits = 1; // 1 significant digit
var exp = Math.Floor(Math.Log10(n));
var result = Math.Floor(n / Math.Pow(10, exp + (1 - nDigits)));

答案 1 :(得分:0)

如果您只对科学代表的第一位数感兴趣,请尝试以下方法:

var number = 1.734565456765434E-06;
var numberString = number.ToString("E");
var firstDigitString = numberString.Substring(0, 1);
var firstDigit = int.Parse(firstDigitString);