我需要将小数或货币转换为整数

时间:2018-07-12 19:35:17

标签: c# asp.net type-conversion int currency

我尝试在C#中将此数字转换为int,但不能。

800,000.00 是原始号码,我需要 800000

我用了那条线,但是没用。

value = int.Parse(Txt_proyeccion.Text, NumberStyles.Any | NumberStyles.Number);

原始号码在ASP应用程序的文本框中。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试分两个步骤进行操作:

  1. 解析为decimal

  2. 投射到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));

编辑:您可能需要指定 format (例如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));

答案 1 :(得分:0)

为什么地球上的人们会转换为字符串然后再返回一个我不知道的数字。

float cash = 800000.49;
int number = (int)cash;

OR

int number = (int)Math.Floor(cash);

OR

int number = (int) Math.Round(cash);

您明白了。