我试图在C#中将这个数字转换为int
,但我做不到。
800000.00是原始数字,我需要80万。
我用了那句话,但没用。
value = int.Parse(Txt_proyeccion.Text, NumberStyles.Any | NumberStyles.Number);
原始号码在asp应用程序的文本框中。
谢谢!
试着用两个步骤来完成:
-
解析为
decimal
。 -
强制转换为
int
(截断或舍入(。
例如
// truncate: 80.97 -> 80
int value = (int) decimal.Parse(Txt_proyeccion.Text, NumberStyles.Any);
// round: 80.97 -> 81
int value = (int) Math.Round(decimal.Parse(Txt_proyeccion.Text, NumberStyles.Any));
编辑:您可能需要指定格式(例如CultureInfo.InvariantCulture
(,以确保.
是小数分隔符,而,
是千的分隔符:
using System.Globalization;
...
// truncate: 80.97 -> 80
int value = (int) decimal.Parse(
Txt_proyeccion.Text,
NumberStyles.Any,
CulureInfo.InvariantCulture);
// round: 80.97 -> 81
int value = (int) Math.Round(decimal.Parse(
Txt_proyeccion.Text,
NumberStyles.Any,
CulureInfo.InvariantCulture));
我不知道为什么人们会转换成字符串并返回到数字。
float cash = 800000.49;
int number = (int)cash;
或
int number = (int)Math.Floor(cash);
或
int number = (int) Math.Round(cash);
你明白了。