微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#双重格式化

我正在尝试将C#double值转换为指数表示法的字符串.考虑一下这个C#代码

double d1 = 0.12345678901200021;
Console.WriteLine(d1.ToString("0.0####################E0"));
//outputs: 1.23456789012E-1 (expected: 1.2345678901200021E-1)

任何人都可以告诉我格式字符串从双d1输出“1.2345678901200021E-1”,如果可能的话?

解决方法

双值只能容纳15到16位数,你有17位(如果我算的是右边).由于64位双数字仅保留16位数字,因此您的最后一位数字会被截断,因此当您将数字转换为科学计数法时,最后一位数字似乎已被截断.

你应该使用十进制.十进制类型可以保存128位数据,而double只能保存64位.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐