gpt4 book ai didi

.net - 可以用非科学格式格式化 float 吗?

转载 作者:行者123 更新时间:2023-12-04 20:03:15 25 4
gpt4 key购买 nike

我试图在没有获得科学 (1.13E-8) 样式格式的情况下将 float 转换为字符串。

我正在寻找“F”和“R”说明符的某种组合。我想要 F 以便它不使用科学风格,但我也想要 R 以便它使用尽可能少的空间来准确表示数字。

所以给定 0.000000001,字符串版本应该是 0.000000001。不是 1E-09,也不是 0.000000001000。

是否可以告诉系统“使其成为定点,但使用精确指定数字所需的最少数字”?

如果不是,好的解决方法是什么?我在想:使用 20 的精度,然后如果有 '.',就砍掉尾随的 0。在字符串中。还有更好的吗?

编辑:

这是我一直在使用的版本。我真的希望有一个格式说明符可以用来让它执行此操作。

var s = f.ToString("F20");
if (s.Contains("."))
{
s = s.TrimEnd('0').TrimEnd('.');
}

最佳答案

以下将只显示小数点后的有效数字,最多10 d。

var format = "#0.##########";

string.Format(1.23, format);
// 1.23

string.Format(1.23456, format);
// 1.23456

string.Format(1.230045, format);
// 1.230045

string.Format(1.2345678912345, format);
// 1.2345678912

这里的关键是 # 符号只输出一个数字,如果它是 significant

至少希望这对您想要的有所帮助。如果没有,您始终可以编写自定义 IFormatProvider

关于.net - 可以用非科学格式格式化 float 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com