当前位置: 首页 > 面试题库 >

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

钱焕
2023-03-14
问题内容

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

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

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

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

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

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我有一个双,其值是10,000,000.00(千万)。我必须将其转换为。当使用该方法时,我会得到 “ 1.0E7”,它遵循规范是正确的。不幸的是,我需要“ 10,000,000.00”(或等价的语言,具体取决于语言环境)。 如何做到这一点? 问题答案: 尝试之一 NumberFormat http://java.sun.com/javase/6/docs/api/java/text/N

  • 我正在创建一个基本的GUI,它接受用户输入的金额,并用预先存在的金额减去它。然而,它不会让我运行下面的一个,因为我得到了一个字符串不能转换为double的错误。这里使用parseInt方法不起作用,因为im使用getText方法。

  • 通常在Matlab中,颜色由RGB强度值的三个元素向量表示,精度为uint8(范围0-255)或双精度(范围0-1)。Matlabs函数,如与任一表示一起工作,使两者都易于在程序中使用。 然而,当将颜色值从一种类型的矩阵分配到另一种类型的矩阵时,同样容易引入错误(因为值会默默转换,但不会重新缩放到新的范围)。刚刚花了几个小时找到这样一个错误,我想确保它永远不会再被引入。 当发生类型转换时,如何使M

  • 我还是一名学生,刚开始学习java编程语言,我只是想问一下如何将函数main中的参数从字符串转换为double,就像将字符串转换为整数一样。pasreInt(arg)

  • 问题内容: 我有一个原始浮点数,需要作为原始双数。简单地将浮标转换为两倍会给我带来额外的精度。例如: 但是,如果我不是强制类型转换,而是将浮点数输出为字符串,然后将字符串解析为双精度,那么我将得到所需的内容: 有没有比String返回更好的方法了? 问题答案: 这并不是说你实际上获得了更高的精度-而是浮标没有准确地代表你最初瞄准的数字。双被精确地表示原始浮子; 显示的是已经存在的“额外”数据。 例

  • 问题内容: 我正在生成密钥,需要将其存储在数据库中,因此我将其转换为字符串,但是要从字符串中获取密钥。有哪些可能的方法可以做到这一点? 我的代码是 如何从字符串取回密钥? 问题答案: 您可以将转换为字节数组(),然后Base64将其编码为。要转换回a ,Base64 会对String进行解码,并在a中使用它来重建您的原始字符串。 对于Java 8 字符串的SecretKey: 字符串到Secret