gpt4 book ai didi

C# ToString ("00") 歧义

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:40 29 4
gpt4 key购买 nike

在此page它说:

The "00" specifier causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "00" would result in the value 35.

“00”是特例还是例子?为什么专门挑出来?

除“00”以外的格式的舍入方式是什么?它特别提到整数舍入;小数点后 n 位四舍五入如何?

ToString("0") 是做什么的?是否与“00”相同但没有四舍五入?

我尝试了 ToString("00"),它给了我一个零填充数字,而我只期望一个数字。

最佳答案

“00”不是特例,只是一个例子,尽管它的措辞方式听起来像是特例。

来自文档:

The "0" custom format specifier serves as a zero-placeholder symbol. If the value that is being formatted has a digit in the position where the zero appears in the format string, that digit is copied to the result string; otherwise, a zero appears in the result string. The position of the leftmost zero before the decimal point and the rightmost zero after the decimal point determines the range of digits that are always present in the result string.

因此 ToString("00") 意味着小数点左侧最少两位数,小数点右侧没有数字(四舍五入)。同样,ToString("000") 将为您提供至少 3 位数字,依此类推。

您还可以控制显示在小数点右侧的精确 位数。 ToString("000.00") 会给你小数点左边至少 3 位数字,右边正好是 2 位数字。小数点右侧的任何额外数字都将四舍五入。

这里有一些传递断言来演示:

var value = 67.89;
Assert.AreEqual("68", value.ToString("0"));
Assert.AreEqual("68", value.ToString("00"));
Assert.AreEqual("068", value.ToString("000"));
Assert.AreEqual("067.9", value.ToString("000.0"));
Assert.AreEqual("067.89", value.ToString("000.00"));
Assert.AreEqual("067.890", value.ToString("000.000"));

关于C# ToString ("00") 歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937487/

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