![](/img/trans.png)
[英]How to stop JTextField and JTextLabel from truncating on JPanel
[英]How to stop truncating trailing 0 from TextWriter?
我有这个代码
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
:如果存在 1,则将 0 替换为相应的数字; 否则,结果字符串中将出现零。
在您的情况下,您需要使用0
而不是#
将零替换为格式化值
我不知道这是否适合您的项目,但我在将十进制值转换为欧元货币时遇到了类似的问题。 你可以让 just.ToString("F6");
writeFile.Write((0.6).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));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.