这可能是一个简单的问题,我相信有办法用string.format()、NumberFormatInfo、CultureInfo或它们的某种组合,但我需要显示带有3个尾随小数位的大数值,一个小数而不是千位分隔符的逗号,然后是百万分隔符及以上的逗号。输入是整数或后跟最多三位小数的数字(20000、123.456、12.2)例如:142650应该显示为142,650.00011200.50应显示为11,200.500123.456应该保持为123.456我想这与将值除以1000然后使用string.format("{0:f3}",value)是一样的,但我希望找到一些没有的东西算术。Stri
我有两种不同的方法来计算一个值。两种方法运行后,我得到以下信息:decimala=145.2344;decimalb=145.2345;我有一个单元测试:Assert.AreEqual(a,b);我希望能够解释+/-.0001的差异。如何添加此规则? 最佳答案 在NUnit'sconstraintmodel,你可以这样做:Assert.That(Math.Abs(a-b),Is.LessThan(0.0001M));更好的是,让它成为一个函数:voidAssertDiff(decimala,decimalb,decimaldiff=
在MVCRazorView中,小数字段需要显示为没有百分号的百分比BUT。例如2或2.5我知道它可以来自模型,它会是这样的:[AutoMapIgnore][DisplayFormat(DataFormatString="{0:F1}")]publicvirtualdecimalOffPeakMarginPercent{get{returnOffPeakMargin*100;}}但根本没有做任何效果,目前显示为:当前显示为3.00000或2.50000。能否请您指导。非常感谢您的指导和帮助。编辑:如果我在View中格式化如下,它显示为3.0或2.5@row.OffPeakMarginPe
我有一个由2个数字的差异生成的,但它返回7%的示例0,07和50%的0,5我只想修复以达到这些目标,例如15,2%13%等等。我怎样才能做到这一点?c#是否在CLR上嵌入了一些东西来做到这一点? 最佳答案 您可以使用Percentage定制NumericFormatString.这将做到这一点,而无需您自己倍增。例如,你可以这样做:doublevalue=0.152;stringresult=value.ToString("#0.##%");如果您的语言环境设置为欧洲(我的猜测基于您编写的格式),您将得到一个值为“15,2%”的字符
我有这样的代码:lblFranshizShowInvwNoskhehEdit.Text=string.Format("{0:n}",(double)(int.Parse(drDarman["FranshizDarsad"].ToString())*Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100);但是{0:n0}字符串格式强制标签的文本没有小数位,而{0:n}字符串格式强制标签的文本有2个小数位数字(默认)。在我的场景中,我只需要必要时的小数位/不四舍五入/我该怎么做? 最佳答案
您好,我是一名C#新手,有人会礼貌地告诉我如何将这段代码的值转换为double/四舍五入的小数。提前致谢DataTabledtValues=newDataTable("GetValues");strValueNumber=ValueNumber[0].ToString();dtGetValues=SQLMethods.GetValues(strValueNumber);total=0;for(inti=0;i 最佳答案 使用Math.RoundMath.Round(mydoublevalue,2);在你的代码中tbtotal2.Te
我有一个货币类型的表格列“金额”。当我通过存储过程检索它的值时,它返回最多4位小数的值(因为货币类型)。我希望该值最多保留两位小数,并且希望它在代码中进行处理。我将如何通过将值四舍五入到小数点后两位来做到这一点。谢谢 最佳答案 阅读CustomNumericFormats有关格式化数字的详细说明。value.ToString("0.00");在C#6或更高版本中,您可以使用stringinterpolation以获得更简洁的语法。$"{value:0.00}"; 关于c#-如何仅显示最多
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:UsingStringFormattoshowdecimalupto2placesorsimpleintegerHowtosetdecimalpointin2decimalplaces?我的View中有价格字段。它具有以下值2.5和44。我想将此值显示为2.50和44.00我使用以下代码@{decimalprolistprice=decimal.Parse(item.OtherFields["Price"].ToString());}$@Math.Round(prolistprice,2,MidpointRo
我有一个使用点(".")作为小数点分隔符的源XML,我在使用逗号(",")作为小数点分隔符的系统上解析它。因此,值0.7被Double.TryParse或Double.Parse解析为7000000。正确解析的选项有哪些?其中之一是使用String.Replace('.',',')用逗号替换源中的点,但我认为我不太喜欢这个。 最佳答案 XML标准明确规定了日期和数字等格式。这有助于确保XML独立于平台且可互操作。看看使用XmlConvert用于xml数据。doublevalue=XmlConvert.ToDouble(stringV
如果有的话,它们之间有什么区别?decimald=(decimal)myDouble;decimald=newdecimal(myDouble);decimald=Convert.ToDecimal(myDouble); 最佳答案 没有区别。如果您查看源代码:十进制:publicstaticexplicitoperatordecimal(doublevalue){returnnewdecimal(value);}在转换中:publicstaticdecimalToDecimal(floatvalue){return(decimal)