我想得到唯一在点之前的部分,但我无法用每种方法都得到它。我的值是 1.734565456765434E-06。我想将其转换为 1
看起来您正在尝试获取数字的最高有效数字。
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)));
如果您只对科学表示的第一个数字感兴趣,请尝试以下操作:
var number = 1.734565456765434E-06;
var numberString = number.ToString("E");
var firstDigitString = numberString.Substring(0, 1);
var firstDigit = int.Parse(firstDigitString);