相关疑难解决方法(0)

使用字符串格式显示最多2位的十进制或简单整数

我有一个显示的价格字段,有时可以是100或100.99或100.9,我想要的是只有在为该价格输入小数时才显示2位小数的价格,例如,如果它的100只是它应该只显示100不是100.00,如果价格是100.2,它应该显示100.20同样100.22应该是相同的.我用谷歌搜索并遇到了一些例子,但它们与我想要的完全不符:

// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"
Run Code Online (Sandbox Code Playgroud)

c# regex string-formatting number-formatting

266
推荐指数
12
解决办法
66万
查看次数

239
推荐指数
7
解决办法
35万
查看次数

将浮点数格式化为2位小数

我目前正在为客户网站建立销售模块.到目前为止,我已经得到了完美计算的销售价格,但我遇到的问题是将输出格式化为2位小数.

我目前在一个变量中调用它,以便我可以将数据绑定到listview.

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何将输出格式化为2位小数?非常感谢!

c# variables floating-point decimal

198
推荐指数
8
解决办法
38万
查看次数

36
推荐指数
4
解决办法
10万
查看次数

格式化为两位小数

可能重复:
c# - 如何将十进制值舍入到2个小数位(用于页面上的输出)

我有一个号码

long n = 32432432423;
Run Code Online (Sandbox Code Playgroud)

我想将此除以1450并在控制台上打印2位小数(四舍五入)

我该怎么做?

COnsole.WriteLine(????);
Run Code Online (Sandbox Code Playgroud)

c#

24
推荐指数
3
解决办法
5万
查看次数

圆形双倍到两个小数位

可能重复:
c# - 如何将十进制值舍入到2个小数位(用于页面上的输出)

将双精度数舍入到两位小数的最佳方法是什么,并将其固定在2位小数位?

示例:2.346 - > 2.35,2 - > 2.00

我希望避免这样的事情,我必须将double转换为字符串,然后再转换为double,这似乎是一个不好的方法来解决这个问题.

c# c#-4.0

19
推荐指数
4
解决办法
7万
查看次数

c#中的toFixed函数

在Javascript中,toFixed()方法格式化一个数字以使用指定数量的尾随小数. 这是javascript中的固定方法

如何在c#中编写相同的方法?

javascript c#

18
推荐指数
2
解决办法
1万
查看次数

16
推荐指数
3
解决办法
9万
查看次数

如何在Json.net中强制最小小数位?

当我使用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)

c# json json.net

12
推荐指数
1
解决办法
6523
查看次数

将十进制值格式化为带有2位小数的货币

我从csv文件获取数据并将其解析为我的应用程序.在我的csv文件中,我有一个列,price其值当然是我项目中项目的价格.

但是,csv文件中的价格不包含尾随0,例如,如果物品的价格是$5.00,则csv文件将其作为$5,如果价格是$9.60,则csv将其作为$9.6.其他价格$9.56虽然很好.

这是我从csv文件中检索价格的方法:

 Price = string.IsNullOrEmpty(columns[3].Trim()) ?
     null : (decimal?)decimal.Parse(columns[3]), 
Run Code Online (Sandbox Code Playgroud)

在我的班级Price设置为public decimal? Price { get; set; }.

如何格式化返回以解决此问题?

Price = String.Format("Price: {0:C}", 
     string.IsNullOrEmpty(columns[3].Trim()) ? 
        null : (decimal?)decimal.Parse(columns[3]));
Run Code Online (Sandbox Code Playgroud)

我尝试了以上但没有奏效.

我如何修复它以使csv中的值$5.9格式化为$5.90.

编辑:

尝试:

Price=decimal.Round(string.IsNullOrEmpty(columns[3].Trim()) ? 
    null : 
    (decimal?)decimal.Parse(columns[3]), 2, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)

不确定我是否做对了?

另外,我不确定如何在我的代码中使用以下选项:

decimalVar.ToString ("#.##");
Run Code Online (Sandbox Code Playgroud)

还尝试过:

 Price = string.IsNullOrEmpty(columns[3].Trim()) ? 
      null : (decimal?)decimal.Parse(columns[3], NumberStyles.Currency)
Run Code Online (Sandbox Code Playgroud)

但仍然行不通.

c# string-formatting

10
推荐指数
2
解决办法
4万
查看次数