科学记数法中的BigInteger.ToString(即E)

时间:2016-04-12 14:07:28

标签: c# .net biginteger

Double.ToString在一个非常大的数字上通常只返回一些有效数字,然后是幂数为10的指数表示法。但是, BigInteger 不会这样做,只返回该数字的所有数字。

我怎么能告诉它只输出像double这样的科学格式而不是全数?我无法将其转换为double,因为它大于 Double.MaxValue 。我可以自己构建一个格式化函数,但如果有一个内置函数考虑所有文化,我会更高兴。

2 个答案:

答案 0 :(得分:4)

与大多数ToString方法一样,BigInteger.ToString允许您传递格式字符串

var myString = myBigInteger.ToString("E"); // yields exponential notation

有关.NET中可用的内置数字格式字符串的详细说明,请参阅以下MSDN页面:

请注意,Exponential Format Specifier允许您提供可选的精度说明符。

答案 1 :(得分:3)

您应该只需使用BigInteger.ToString()方法和expected Exponential formatting string E来处理科学记数法:

import socket
port=12345
s=socket.socket()
s.connect(("192.168.43.111",port))

sendingMessage = input("Enter your message : ")
s.send(bytes(sendingMessage, 'UTF-8'))

data = s.recv(32)
receivedData=data.decode("utf-8","ignore")
print (receivedData)

s.close