Double.ToString
在一个非常大的数字上通常只返回一些有效数字,然后是幂数为10的指数表示法。但是, BigInteger 不会这样做,只返回该数字的所有数字。
我怎么能告诉它只输出像double这样的科学格式而不是全数?我无法将其转换为double,因为它大于 Double.MaxValue 。我可以自己构建一个格式化函数,但如果有一个内置函数考虑所有文化,我会更高兴。
答案 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