Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文本框中的数字舍入为C#中的2位小数?_C#_Parsing_Integer_Decimal - Fatal编程技术网

如何将文本框中的数字舍入为C#中的2位小数?

如何将文本框中的数字舍入为C#中的2位小数?,c#,parsing,integer,decimal,C#,Parsing,Integer,Decimal,我有一个价格文本框,我想得到一个带2个小数的十进制值,不管原始字符串是一个已经是十进制还是整数的字符串。例如: input = 12 --> output = 12.00 input = 12.1 --> output = 12.10 input = 12.123 --> output = 12.12 您可以使用将字符串作为格式的.ToString()重载: var roundedInput = input.ToString("0.00"); 当然,这会导致字符串类型 要简

我有一个价格文本框,我想得到一个带2个小数的十进制值,不管原始字符串是一个已经是十进制还是整数的字符串。例如:

input = 12 --> output = 12.00
input = 12.1 --> output = 12.10
input = 12.123 --> output = 12.12

您可以使用将字符串作为格式的
.ToString()
重载:

var roundedInput = input.ToString("0.00");
当然,这会导致字符串类型

要简单地进行舍入,可以使用
Math.round

var roundedInput = Math.Round(input, 2);
您应该知道,默认情况下,
Math.Round
使用“银行家取整”方法,这可能是您不想要的。在这种情况下,可能需要使用采用舍入类型枚举的重载:

var roundedInput = Math.Round(input, 2, MidpointRounding.AwayFromZero);
请参见此处使用
中点舍入的方法重载文档:

还要注意,
Math.Round
的默认舍入方法与
decimal.ToString()
中使用的默认舍入方法不同。例如:

(12.125m).ToString("N");  // "12.13"
(12.135m).ToString("N");  // "12.14"
Math.Round(12.125m, 2);   // 12.12
Math.Round(12.135m, 2);   // 12.14

根据您的情况,使用错误的技术可能非常糟糕

使用此方法
decimal.ToString(“N”)

试试看

// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"
Input.Text = Math.Round(z, # Places).ToString();

请注意,接受的答案提供的字符串可能并不总是您想要的字符串。例如,
(12.125m).ToString(“N”)
“12.13”
(12.135m).ToString(“N”)
“12.14”
远离零位
四舍五入)。但是
Math.Round(12.125m,2)
12.12
为数学圆(12.135米,2)
12.14
。小心!这将返回四舍五入的答案,但不会按要求完成格式设置