我有以下代码:
import os
reader=open('try.txt', 'r')
data=reader.read()
reader.close()
x=0.0
y=0.0
z=0.0
def xcoord():
global x
global y
global z
while x<=1.0:
mypath1='C:\\Users\\Rebecca\\Documents\\PhD\\Learnpython\\X' + str(x)
os.makedirs(mypath1)
ycoord()
x+=0.01
y=0.0
z=0.0
def ycoord():
global x
global y
global z
while y<=1.0:
mypath2='C:\\Users\\Rebecca\\Documents\\PhD\\Learnpython\\X' + str(x) + '\\Y' + str(y)
os.makedirs(mypath2)
zcoord()
y+=0.01
z=0.0
def zcoord():
global z
while z<=1.0:
writer=open('C:\\Users\\Rebecca\\Documents\\PhD\\Learnpython\\X' + str(x) + '\\Y' + str(y) + '\\X' + str(x) + 'Y' + str(y) + 'Z' + str(z) + '.dat', 'a')
writer.write(data)
print('interstitial Ce' + ' %.2f' % x + ' %.2f' % y + ' %.2f' % z + ' fix', file=writer)
print('centre' + ' %.2f' % x + ' %.2f' % y + ' %.2f' % z, file=writer)
print('size 14 28', file=writer)
print('dump1 inter' + '%.2f' % x + '%.2f' % y +'%.2f' % z + '.dat', file=writer)
print('output xyz ' + '%.2f' % x + '%.2f' % y + '%.2f' % z + '.xyz', file=writer)
writer.close()
z+=0.01
xcoord()
[N.B。我知道以这种方式使用全局变量并不理想,但这是目前唯一能让我理解代码并让它做我想做的事情的方式....]
执行此操作时,x,y和z的值会根据需要增加,但(有时仅)输出值有几个小数位。
如何更改设置,使x,y和z仅为2位小数?
任何帮助都将受到赞赏 - 干杯
答案 0 :(得分:1)
你试过round(n, 2)
吗?这将在小数点后仅显示两个数字。但是,请记住,这只会使它看起来最多两个数字,真正的表示仍然会更大。这是因为某些数字无法使用浮点数精确表示。
答案 1 :(得分:0)
感谢。
问题(这对您来说可能显而易见但对我不是那么请耐心等待)但是:
让我说我将x的值打印到文本文件中,这样它只显示为2dp 然后将此文本文件用作fortran程序的输入: fortran程序是否将值读取为2dp(如屏幕上所示)或全值?