格式python浮点数像爪哇一样



我的程序由Java和Python组件组成,我希望Python与Java默认情况下的浮点数完全相同。

java:

    float number1 = (float) Math.PI;
    float number2 = (float) Math.PI / 1000f;
    float number3 = (float) Math.PI / 10000f;
    float number4 = (float) Math.PI / 100000f;
    float number5 = (float) (int)(Math.PI * 1000000f) / 1000000f / 100000f;
    System.out.println(number1); // prints 3.1415927
    System.out.println(number2); // prints 0.0031415927
    System.out.println(number3); // prints 3.1415926E-4
    System.out.println(number4); // prints 3.1415926E-5
    System.out.println(number5); // prints 3.141592E-5

如何在Python中获得相同的输出?

首次尝试在Python中:

import math
number1 = float(math.pi)
number2 = float(math.pi / 1000)
number3 = float(math.pi / 10000)
number4 = float(math.pi / 100000)
number5 = float(int(math.pi * 1000000) / 1000000 / 100000)
print(number1) # prints 3.141592653589793
print(number2) # prints 0.0031415926535897933
print(number3) # prints 0.0003141592653589793
print(number4) # prints 3.141592653589793e-05
print(number5) # prints 3.141592e-05
print("{:8e}".format(number1)) # prints 3.141593e+00
print("{:8e}".format(number2)) # prints 3.141593e-03
print("{:8e}".format(number3)) # prints 3.141593e-04
print("{:8e}".format(number4)) # prints 3.141593e-05
print("{:8e}".format(number5)) # prints 3.141592e-05

您的格式语法不正确。这样做

print("{:.15f}".format(math.pi))

或老式的方式

print("%.15f" % (math.pi))

最新更新