c# - .net : What is the correct format string for a fixed number of decimal places, 但 "x.xxE+xxx"对于大数?

标签 c# number-formatting

我想用固定的四位小数来格式化 double 值。我想要什么:

  • “小”号应该完整显示,即1234.56789应该显示为1234.5679
  • “大”数应以指数表示法显示

我无法同时实现:

(1234.56789).ToString("F4", CultureInfo.InvariantCulture)

产量:

1234.5679

但是:

(123456789123456789.123456789).ToString("F4", CultureInfo.InvariantCulture)

产量:

1234567891234567000.0000

使用 G4 产生大数 1.235E+17 和小数 1235

我也尝试了“E4”和“e4”,但没有任何好结果。

那么,我应该使用什么格式来实现与默认格式相同的行为,即不使用默认字符串,而是将小数位数减少到四位?不可能是我被迫进行字符串破解或必须执行“ifs”来检查数字是否在特定范围内......

最佳答案

使用G8它会给你想要的结果

(1234.56789).ToString("G8", CultureInfo.InvariantCulture)

输出:1234.5679

(123456789123456789.123456789).ToString("G8", CultureInfo.InvariantCulture)

输出:1.2345679E+17

关于c# - .net : What is the correct format string for a fixed number of decimal places, 但 "x.xxE+xxx"对于大数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460161/

相关文章:

PHP:如果数字(带逗号),将其转换为正确的数字格式(带点)

c# - 我能否以类似于此 C++ 示例的方式实例化 C# 类?

c# - 错误 "Non-generic method"IParentNode.QuerySelector(字符串) "cannot be used with type arguments. "

c# - ToString(string) 未格式化 float ?正如我所期望的那样

formatting - 如何在 jqgrid 寻呼机上的 viewrecord 中格式化数字?

java - 在 Eclipse 项目中使用 MapStruct 将 "dirty"字符串字段映射为 double

c# - 应用程序配置无效 - 应用程序无法启动

c# - 如何设置基本字体颜色?

c# - .NET 中的 RSA 加密 - JAVA 中的解密 -> Java 抛出 "modulus not positive"错误

php - Sr.No 在 PHP MYSQL 中无法正常运行