0

我做了一些研究,找不到它。

我使用浮点值和 .ToString() 和 NumberFormatInfo 来构建一些 GLSL 源代码。

但是 NFI 将 1.0 变为“1”而不是“1.0”,这会导致 GLSL 代码中的整数,并使显卡为隐式整数转换而哭泣。

我不能在没有 NFI 的情况下使用 ToString(),因为它需要国家的标准十进制分隔符。所以在德国这导致 1.5 => "1,5"

如何让 NFI 避免删除尾随零?

4

3 回答 3

3

这应该是诀窍:

 .ToString("0.0###############")

如果您想要更少的小数,请删除#(我已经double为 16 位的精度输入了足够的小数)

或者,如果您需要指定文化,

 .ToString("0.0###############", yourCulture)
于 2013-08-11T09:38:08.053 回答
0

您可以设置NumberFormatInfo.NumberDecimalDigits要显示的零个数。然后,您可以使用此代码显示您的号码:

var nfi = new CultureInfo("en-us").NumberFormat;
nfi.NumberDecimalDigits = 2;
//outputs 1.00
1.ToString("N", nfi);
于 2013-08-11T09:38:31.283 回答
-1

这应该可以解决问题:

ToString("0.0");
于 2013-08-11T09:36:42.280 回答