当显示当前小数的值时.ToString(),它精确到15个小数位,并且由于我用它来表示美元和美分,我只希望输出为2位小数.
我是否使用此变体.ToString()?
使用字符串插值之间是否存在显着的性能差异:
myString += $"{x:x2}";
Run Code Online (Sandbox Code Playgroud)
vs String.Format()?
myString += String.Format("{0:x2}", x);
Run Code Online (Sandbox Code Playgroud)
我只是问,因为Resharper正在提示修复,我之前被愚弄了.
对于10我想要10而不是10.00对于10.11我想要10.11
这可能没有代码吗?即通过单独指定格式字符串{0:N2}
我一直试图将这个打印出的答案缩小到两位小数.所涉及的所有数学都必须保持两位小数的格式.我尝试了一些事情,我不知道要改变什么才能使这项工作成功.
double pdt1 = 239.99;
double pdt1Total;
double pdt2 = 129.75;
double pdt2Total;
double pdt3 = 99.95;
double pdt3Total;
double pdt4 = 350.89;
double pdt4Total;
double wage = 200;
double percentage = 9;
double total;
double answer;
double i = 100;
double a;
double b;
double c;
double d;
Console.Write("Enter number sold of product #1: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number sold of product #2: ");
b = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number sold of product #3: ");
c = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter …Run Code Online (Sandbox Code Playgroud) 当我使用json.net向json写小数时,我会遇到恼人的不一致.有时它达到1 dp,有时则达到2 dp.
显然,我知道解决方案,以输出小数的一定数量的小数,如对字符串这个,但是你没有使用json.net无需编写自定义序列我猜控制.
我也知道Math.Round要强制执行最大小数位数,这个问题与强制执行最小小数位数有关.
前两个测试显示正在发生的事情,它保留声明或计算中的原始小数位数.
我发现我可以添加然后减去接下来两个测试显示工作的一小部分,但是有更清洁的方法吗?
[TestFixture]
public sealed class DecimalPlaces
{
public class JsonType
{
public decimal Value { get; set; }
}
[Test]
public void TwoDp()
{
var obj = new JsonType { Value = 1.00m };
Assert.AreEqual("{\"Value\":1.00}", JsonConvert.SerializeObject(obj));
}
[Test]
public void OneDp()
{
var json = new JsonType { Value = 1.0m };
Assert.AreEqual("{\"Value\":1.0}", JsonConvert.SerializeObject(obj));
}
private decimal ForceMinimumDp(decimal p, int minDecimalPlaces)
{
decimal smallFrac = 1m/((decimal)Math.Pow(10, minDecimalPlaces));
return …Run Code Online (Sandbox Code Playgroud) 我认为我有Price字段.它有以下值2.5 and 44.
我要显示此值2.50 and 44.00我使用以下代码
@{decimal prolistprice = decimal.Parse(item.OtherFields["Price"].ToString());}
$@Math.Round(prolistprice, 2, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)
其中item.OtherFields["price"] is a object我将其转换为字符串,然后十进制
但Math.round不工作它只显示2.5和44 ..任何人都可以帮助这个
要求是将十进制数格式化为字符串,但总共最多10位数,例如:
使用{0:0.######}显然不起作用,因为它没有考虑总位数...是否存在执行此类格式化的格式化字符串,或者是否需要实现这个的额外代码?
编辑:我正在尝试使用单元格样式上的Custom属性设置Aspose.Cells的单元格格式.似乎G10不起作用.
我目前正在开发 ASP.NET MVC 4.5 应用程序。
我尝试将模型中的属性渲染为正确的数值:
ViewModel 中的属性:
public decimal? Price { get; set; }
Run Code Online (Sandbox Code Playgroud)
来自数据库的数据如下所示:99999,99
我想要的格式如下:99.999,99
在我的剃刀视图中,我使用如下属性:
@Model.Price
Run Code Online (Sandbox Code Playgroud)
不幸的是它看起来仍然是这样的:99999.99
你知道我如何格式化该小数吗?我的观点正确吗?
还有没有不使用显示模板的解决方案?
谢谢!!!
我使用以下代码来格式化小数
return string.Format(CultureInfo.CreateSpecificCulture("nb-NO"), "{0:N3}", decVal);
Run Code Online (Sandbox Code Playgroud)
如果decVal不包含小数,我不想显示小数点,但我想显示没有零的正确格式的数字,如何执行此操作?
string num = 23.6;
Run Code Online (Sandbox Code Playgroud)
我想知道如何将其转换为带小数点后3位的十进制数
decimal nn = 23.600
Run Code Online (Sandbox Code Playgroud)
有什么方法吗?
c# ×10
.net ×4
decimal ×3
formatting ×3
asp.net ×2
string ×2
asp.net-mvc ×1
double ×1
format ×1
json ×1
json.net ×1
performance ×1
razor ×1
resharper ×1
rounding ×1