只有在需要时才使用科学记数法

本文关键字: | 更新日期: 2023-09-27 18:00:55

我想将double值解析为string。我希望我的号码有指定的位数(直到运行时我才知道(。如果这个数字可以用数字的非零值来表示,这就是我想要的。如果这个数字是零,就像这样,我希望它用科学的符号表示。

一些例子会让这一点更清楚,这假设我想要3个数字:

值:.2367输出:"0.23">

值:.00367输出:"3.67E-3">

值:22.3输出:"22.3">

值:3364.0输出:"3.36E3">

我的解决方案将使用ToString((方法和N数字格式字符串,如果结果为零,则恢复为E格式字符串,但这感觉像是在重新发明轮子。有人知道是否有内置的方法可以做到这一点吗?

只有在需要时才使用科学记数法

您看过使用通用数字格式说明符吗?

通用("G"(格式说明符将数字转换为最大值定点或科学记数法的紧凑型,取决于数字的类型以及是否存在精度说明符。

文件中的一些样本:

double number;
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416 
相关文章:
  • 没有找到相关文章