字符串到十进制显示总是两位小数

时间:2015-09-08 14:22:05

标签: c# string decimal

我有这个字符串“121,121.00”,我需要转换为小数,以给前端这个'121121.00'。我已经尝试了很多,但我还不能做到。这里我尝试了一些代码以及他们给我的结果:

string var = "121,121.00"

decimal d = decimal.Parse(var, NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);
// it gives me '12112100'  

decimal d = decimal.Parse(var, NumberStyles.Currency);
// it gives me '12112100' 

decimal d = decimal.Parse((var.Replace(",","")), NumberStyles.Currency);
// and it gives me '12112100' too

3 个答案:

答案 0 :(得分:6)

十进制只有一个值,你将它与一个字符串混淆,该字符串可以以所需的格式显示数字。您可以将d.ToString("0.00)"CultureInfo.InvariantCulture

一起使用
string var = "121,121.00";
decimal number = decimal.Parse(var, CultureInfo.InvariantCulture);
string result = number.ToString("0.00", CultureInfo.InvariantCulture);

答案 1 :(得分:3)

数字不会落后零小数。

如果你想以某种方式显示它们(而不是仅使用它们),那么你需要将它们转换为字符串,即number.ToString("0.00") - 但是它有点滑稽,因为你首先从字符串开始。

答案 2 :(得分:2)

简单的单步过程 - 直接将小数分析为:

var decimalValue = decimal.Parse(decimalString);

因此,decimal.Parse("121,121.00")将返回decimal value - 121121.00。根本不需要担心字符串和cultureinfo。