我在pythong中生成“float64”类型的数字。它也可以是负数。
np.random.uniform(low=-1, high=1, size=dims), dtype='float64')
然后我迭代列表并将每个值x
作为字符串写入文本文件。
with open(simulated_data_file, 'a') as data_file_writer:
data_file_writer.write(str(x)+"\n")
现在我将其作为String读取,并使用Double.parseDouble(inputFeatureStringArray[i])
我想知道在任何情况下,python中生成的初始值在Java中会有所不同。
答案 0 :(得分:0)
首先,所有数字都是Python中的任意精度。这有时会产生有趣的结果,但可能不会在这里。
其次,我希望你重新检查一下你的问题:"如果我用Python在一个文本文件中写一个数字,我会用Java获得相同的数字吗?"。
您正在Python中通过某种方式生成数字。当您告诉Python打开文件以便以文本模式写入时,对该缓冲区的任何后续写入都明确要求将字符串(或bytes-ish)对象作为参数。
现在你有一个文本文件,其中包含代表数字的ASCII或UTF-8数字字符串。
当Java打开此文件进行读取时,它可能会返回一个字符串(或bytes-ish)对象。为了在Java中将此字符串用作数字,您需要使用Java的atoi
版本,它将尝试将字符串解析为数字文字。
TL; DR:您的问题与数字和特定语言sizeof
无关,只与字符串有关。由您来确保Python以Java可以读取的方式编写文本(不是那么难,我向您保证)。
如果要将表示数字的word
或bytes-ish对象写入文件对象作为字节对象:即数字的文字二进制表示(不会产生文本文件) ),那么你可能会遇到一些问题,因为所有的Python数字,如上所述,BigIntegers,基本上都是。