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

  • 本文关键字:转换 int 双精度 指数 c#
  • 更新时间 :
  • 英文 :


我想得到唯一在点之前的部分,但我无法用每种方法都得到它。我的值是 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);

最新更新