在Java中将双精度型转换为字符串,反之亦然,而又不损失精度

发布于 2021-01-30 15:47:07

字符串 一个的表示 写入和从由文件读 C# 应用。

C#应用程序使用以下片段将双精度型转换为字符串:

value.ToString("R", NumberFormatInfo.InvariantInfo);

C#应用程序使用以下片段将字符串转换为双精度型

double num = double.Parse(s, NumberStyles.Float, (IFormatProvider) NumberFormatInfo.InvariantInfo);

如果要在 Java 应用程序中写入和读取同一文件,您将如何转换类型而不丢失数据?

关注者
0
被浏览
73
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    我相信,只要使用就可以Double.parseDouble()并且Double.toString()不会丢失数据。特别是从docs中获取Double.toString()

    m或a的小数部分必须打印多少个数字?必须至少有一位数字来表示小数部分,并且除此以外,还需要与唯一数量不同的数字,以便将参数值与双精度类型的相邻值唯一区分开。也就是说,假设x是此方法针对有限的非零参数d生成的十进制表示形式所表示的精确数学值。则d必须是最接近x的double值;或者,如果两个双精度值均相等地接近于x,则d必须是其中之一,并且d的最低有效位必须为0。

    如果要保留确切的字符串表示形式(这不太一样),另一种方法是BigDecimal在Java中使用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看