Java 如何停止从TextWriter截断尾部0?
我有这个密码Java 如何停止从TextWriter截断尾部0?,java,c#,asp.net,asp.net-mvc,Java,C#,Asp.net,Asp.net Mvc,我有这个密码 private const string STANDARD_6DIGIT_FORMAT = "{0:0.0#####}~"; private const string STANDARD_5DIGIT_FORMAT = "{0:0.0####}~"; private const string STANDARD_4DIGIT_FORMAT = "{0:0.0###}~"; static void Ma
private const string STANDARD_6DIGIT_FORMAT = "{0:0.0#####}~";
private const string STANDARD_5DIGIT_FORMAT = "{0:0.0####}~";
private const string STANDARD_4DIGIT_FORMAT = "{0:0.0###}~";
static void Main(string[] args)
{
System.IO.TextWriter writeFile = new StreamWriter("d:\\textwriter.txt");
writeFile.Write(STANDARD_5DIGIT_FORMAT, 0.600000);
writeFile.Flush();
writeFile.Close();
writeFile = null;
}
当我试图在txt文件中格式化0.600000到0.60000时,它会截断尾随的零
有人能帮我阻止这一切吗?我想在txt文件中保留所有这些值您是否尝试过使用
0
而不是#
将浮点数转换为字符串,然后将其写入文件
//Use '0' instead of '#'
private const string STANDARD_5DIGIT_FORMAT = "{0:0.000000}~";
...
writeFile.Write(0.600000.ToString(STANDARD_5DIGIT_FORMAT));
....
根据文件
#
:如果有相应的数字,则用相应的数字替换“#”符号;否则,结果字符串中不会出现任何数字
0
:如果有相应的数字,则用相应的数字替换零;否则,零将出现在结果字符串中
在您的情况下,需要使用0
而不是#
将零替换为格式化值
您是否尝试过使用
0
而不是#
将浮点数转换为字符串,然后将其写入文件
//Use '0' instead of '#'
private const string STANDARD_5DIGIT_FORMAT = "{0:0.000000}~";
...
writeFile.Write(0.600000.ToString(STANDARD_5DIGIT_FORMAT));
....
根据文件
#
:如果有相应的数字,则用相应的数字替换“#”符号;否则,结果字符串中不会出现任何数字
0
:如果有相应的数字,则用相应的数字替换零;否则,零将出现在结果字符串中
在您的情况下,需要使用0
而不是#
将零替换为格式化值
我不知道这是否适合您的项目,但我在将十进制值转换为欧元时遇到了类似的问题。 您可以使.ToString(“F6”) 逗号和点的问题:
var cultureFranch = new System.Globalization.CultureInfo("fr-FR", false);
var nfi = cultureFranch.NumberFormat;
nfi.NumberGroupSeparator = ",";
nfi.NumberDecimalSeparator = ".";
writeFile.Write((0.6).ToString("F6", nfi));
我不知道这是否适合你的项目,但我有类似的问题转换十进制值欧元货币。 您可以使.ToString(“F6”) 逗号和点的问题:
var cultureFranch = new System.Globalization.CultureInfo("fr-FR", false);
var nfi = cultureFranch.NumberFormat;
nfi.NumberGroupSeparator = ",";
nfi.NumberDecimalSeparator = ".";
writeFile.Write((0.6).ToString("F6", nfi));
这与Java有什么关系?他们必须知道一些逻辑才能做到这一点。这不是关于TextWriter,而是关于停止从truncingok中拖尾0,这在你的C#示例中并不明显……这与Java有什么关系?他们可能知道一些逻辑来做到这一点。这不是关于TextWriter,而是关于停止从truncingok中拖尾0,这在您的C#示例中并不明显……当我编写writeFile.Write(0.600000.ToString(标准#5位#格式)时,它给出了{0:0.6}~;是否可以使用我们使用0而不是#即使值可能也不是零?是的,
Console.WriteLine(0.610000.ToString(“0.000000”)
将打印0.610000
当我写writeFile时,它会给出{0:0.6}~;是否可以使用我们使用0而不是#即使值可能也不是零?是的,Console.WriteLine(0.610000.ToString(“0.000000”)代码>将打印0.610000