gpt4 book ai didi

c# - .Net - 一般数字格式似乎不保留零

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:32 25 4
gpt4 key购买 nike

查看the documentation on Standard Numeric Format Strings .它说

However, if the number is a Decimal and the precision specifier is omitted, fixed-point notation is always used and trailing zeros are preserved.

对我来说,尾随零的定义只是指数字末尾的任何零,无论它们是在小数点之前还是之后。

因此,根据我对尾随零的理解,300 和 3.00 都有 2 个尾随零。

但是,当我实际尝试时,似乎只保留了小数点前的尾随零。

我只是误解了此处尾随零的定义,还是会保留小数点后的零?

using System;

public class Program
{
public static void Main()
{
Console.WriteLine(new Decimal(10.000).ToString("G"));
Console.WriteLine(new Decimal(0.000000).ToString("G"));
Console.WriteLine(new Decimal(30000).ToString("G"));
}
}

看例子: https://dotnetfiddle.net/O2GwOY

最佳答案

问题是您没有将数字指定为 decimal,而是 double 文字。由于 double 不保留尾随零,因此构造函数看不到它们。对于前两个示例,您使用的是构造函数

public Decimal (double value)

最后一个

public Decimal (int value)

尝试:

Console.WriteLine(10.000m.ToString("G"));
Console.WriteLine(0.000000m.ToString("G"));
Console.WriteLine(30000m.ToString("G"));

m 类型后缀(“m”代表货币)指定一个十进制 数字。这按预期工作。

这也适用:

Convert.ToDecimal("10.0000").ToString("G")

Decimal.Parse("10.0000").ToString("G")

参见:Value types table (C# Reference)

关于c# - .Net - 一般数字格式似乎不保留零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com